知道选择了哪个项目?

时间:2015-11-29 17:54:54

标签: android button alertdialog

我有一个应用程序,您可以从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中选择的项目是=舞蹈)

做我上面写的代码。

1 个答案:

答案 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