对话框活动 - 添加按钮点击监听器

3
我正在尝试创建一个可像对话框一样使用的Activity。 我的Activity具有对话框主题,因此它具有对话框的感觉。 在我的布局中,我添加了一个TextView来显示消息和三个按钮(Positive, Negative, Neutral)。 要显示的文本消息作为Intent的额外参数传递。按钮名称也是如此。 如果在Intent-extras中传递了空字符串,则隐藏相应的按钮。这几乎实现了对话框的行为,但我不知道如何实现按钮点击监听器。 你有什么想法吗?
2个回答

1
这很简单: 您应该通过startActivityForResult(Intent, requestCode);启动对话框, 并覆盖方法onActivityResult(int requestCode, int resultCode, Intent data)以获取对话框活动的结果。
您的每个对话框按钮都必须调用setResult(),然后结束它。如果您传递了resultCode和data,则会在方法onActivityResult中返回主活动。

这确实可以解决我的问题,但我需要从另一个活动中调用对话框活动。你看,我的问题是我没有活动上下文。 - Arnab Chakraborty
你打算如何启动活动并在哪里处理点击? - hunter
我已经有了应用程序上下文,可以从那里启动活动。我想能够处理从调用活动的位置点击产生的事件,不需要一个适当的点击监听器,只需要一种基于按钮点击的回调即可。 - Arnab Chakraborty

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()一起使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接