2011-11-24 67 views
3

我想创建一个可以像对话框一样使用的活动。 我的活动有一个对话框主题,所以它有对话的感觉。 在我的布局中,我添加了一个TextView,显示一条消息和三个按钮(正面,负面,中性)。要显示的文本消息作为额外的Intent传递。按钮名称也是如此。我隐藏了在意图附加项中已经传递了空字符串的按钮。这几乎实现了对话框的行为,除了我不知道如何实现按钮点击侦听器。对话框活动 - 添加按钮点击监听器

任何想法?

回答

1

如果你有你在一个XML文件格式,你可以为你的按钮添加类似onClick="onMyButtonClick",然后在代码中你将会有

public void onMyButtonClick(View sender) { ... } 

或者你可以在你的onCreate()

Button myButton = (Button)findViewById(R.id.my_button); 
myButton.setOnClickListener(new OnClickListener() { ... }); 

我想你会想要从你的onCLickListener呼叫finish()某处,或许与setResult()

1

这很简单: 您应该通过startActivityForResult(Intent, requestCode); 开始对话并覆盖方法onActivityResult(int requestCode,int resultCode,Intent数据)以获取对话活动的结果。

每个对话按钮,必须调用setResult()并完成它。并且如果您通过resultCode和数据,您将返回onActivityResult方法中的主要活动。

+0

它确实能解决我的问题,但为此我需要从另一个活动中调用对话活动。你看我的问题是我没有一个活动上下文。 –

+0

你如何计划开始活动以及你想在哪里处理点击? – hunter

+0

我有应用程序上下文,我可以从那开始活动。我希望能够处理来自我调用Activity的位置的点击,不需要成为合适的Clicklistener,只需点击某个按钮即可完成某种回调。 –