我有一个应用程序,您可以从AlertDialog微调器中选择一个项目,但我不知道如何制作我的应用程序,记住所选择的选项,然后按下我的按钮。这就是我现在所拥有的:
@Override
public void onClick(View v) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
mp = MediaPlayer.create(getApplicationContext(), R.raw.ais);
mp.start();
Intent myIntent = new Intent(MainActivity.this, Main2Activity.class);
MainActivity.this.startActivity(myIntent);
}
}, 9000);
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
}
});
}
对于这段代码,我想添加我最后选择的项目按钮,例如:
如果(最近从AlertDialog中选择的项目是=舞蹈)
做我上面写的代码。
答案 0 :(得分:1)
一种方法是使用界面。在Alert Dialog片段中定义一个接口,并将其实例化为:
public interface MyDialogListener {
//put whatever data you want to pass as a paramenter, below I have two examples
public void onDataSelectedEvent( String action);
}
MyDialogListener myListener;
通过将您的活动强制转换为MyDialogListener
,必须在对话框中实例化侦听器。
你可以这样做:
myListener = (MyDialogListener) MainActivity.this;
或者更好的方法是在对话框onAttach(...)
方法中使用 activity 参数。
我们能够这样做,因为稍后,我们将使您的活动实现MyDialogListener接口,这将有效地使活动成为MyDialogListener。
将此行放在方法或侦听器中,可能是警告对话框中的onClick()。这是一个微调器:
myListener.onDataSelectedEvent(mySpinner.getSelectedItem().toString())
在活动中实施接收如下数据的界面:
public class MyActivity extends Activity
implements MyAlertDialog.MyDialogListener{
然后,在接收数据的活动中,接口方法如下所示:
@Override
public void onDataSelectedEvent(String action) {
//probably better to use a switch statement
if(action == "dance") {
// dance()
} else if(action == "stand") {
.......etc
}
}
这里有一个很好的例子:http://developer.android.com/guide/topics/ui/dialogs.html#PassingEvents