知道选择了哪个项目吗?

Know which item selected?

我有一个应用程序,您可以在其中 select 来自 AlertDialog 微调器的项目,但我不知道如何制作我的应用程序,以记住 selected 的选择,然后对此表现出我的按钮。这就是我现在拥有的:

@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);
        }
    });
}

我想在这段代码中添加上一个 selected 项目按钮,例如:

如果(来自 AlertDialog 的最后一个 selected 项目是 = dance)

执行我上面写的代码。

一种方法是使用 接口 。在您的 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;

必须通过将 activity 类型转换为 MyDialogListener 来在对话框中实例化侦听器。

你可以这样做:

myListener = (MyDialogListener) MainActivity.this;

或者更好的方法是在对话框的 onAttach(...) 方法中使用 activity 参数。

我们能够做到这一点,因为稍后,我们会让您的 activity 实现 MyDialogListener 接口,这将有效地使 activity 成为 MyDialogListener。

将此行放在方法或侦听器中,可能是警报对话框中的 onClick()。这是一个微调器:

myListener.onDataSelectedEvent(mySpinner.getSelectedItem().toString())

在您的 Activity 中实现 接口 接收这样的数据:

public class MyActivity extends Activity
                      implements MyAlertDialog.MyDialogListener{

然后,在activity接收数据时,接口方法是这样的:

@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