我正在尝试创建一个可以像对话框一样使用的活动。我的活动有一个对话主题,所以它有对话的感觉。在我的布局中,我添加了一个 TextView,用于显示一条消息,以及三个按钮(正、负、中性)。要显示的文本消息作为额外的 Intent 传递。按钮名称也是如此。我隐藏了在 Intent-extras 中传递了空字符串的按钮。这几乎实现了对话框的行为,除了我不知道如何实现按钮单击侦听器。
有任何想法吗?
我正在尝试创建一个可以像对话框一样使用的活动。我的活动有一个对话主题,所以它有对话的感觉。在我的布局中,我添加了一个 TextView,用于显示一条消息,以及三个按钮(正、负、中性)。要显示的文本消息作为额外的 Intent 传递。按钮名称也是如此。我隐藏了在 Intent-extras 中传递了空字符串的按钮。这几乎实现了对话框的行为,除了我不知道如何实现按钮单击侦听器。
有任何想法吗?
这很简单:您应该通过startActivityForResult(Intent, requestCode);
并覆盖方法 onActivityResult(int requestCode, int resultCode, Intent data) 开始对话以获取对话活动的结果。
您的每个对话框按钮都必须调用setResult()
并完成它。如果您传递了结果代码和数据,您将返回方法 onActivityResult 中的主要活动。
如果你在 XML 文件中有你的布局,你可以onClick="onMyButtonClick"
为你的按钮添加类似的东西,然后在代码中你应该有
public void onMyButtonClick(View sender) { ... }
或者,您可以在您的onCreate()
Button myButton = (Button)findViewById(R.id.my_button);
myButton.setOnClickListener(new OnClickListener() { ... });
我想你会想在finish()
某个地方从你的 onCLickListener 调用,也许还有setResult()