知道选择了哪个项目吗?
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
我有一个应用程序,您可以在其中 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