我的Android应用程序中有一个微调控件,我希望用户从微调器中选择一个选项。选择该选项后,可以将用户重定向到另一个意图。我的问题是如何从微调器的onitemselcted方法调用intent ??。
或者我正在做其他方式,我可以做到这一点。我需要用户先从下拉列表中设置选项,然后再继续下一页。
如果我在我的onitemselected方法中放入startactivity(intent),我会得到这个 error对于类型,方法startActivity(Intent)未定义 MyOnItemSelectedListener(Myonitemselectedlistner是我的班级 实现OnItemSelectedListener)
这是我的onitemlectedlistner代码
class MyOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
Context ctx = view.getContext();
SharedPreferences myPrefs = ctx.getSharedPreferences("hello", android.content.Context.MODE_WORLD_READABLE );
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString("city", parent.getItemAtPosition(pos).toString());
prefsEditor.commit();
Intent intent = new Intent();
intent.setClass(ctx, MainActivity.class);
startActivity(intent);
}
public void onNothingSelected(AdapterView parent) {
//do nithong
}
}
答案 0 :(得分:4)
尝试做类似的事情:
YourParentClassName.this.startActivity(intent);
这是经过充分测试的实施......这个工作:
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
if (position == 1){
Intent intent = new Intent(MyActivity.this, AnotherActivity.class);
MyActivity.this.startActivity(intent);
}
}
public void onNothingSelected(AdapterView<?> parentView) {
// To do ...
}
});
答案 1 :(得分:0)
您的onitemselected方法位于实现OnItemSelectedListener的私有类中,该类未定义startActivity。 startActivity方法是Activity的一部分。
您应该在父活动中创建一个方法,并从那里调用startActivity。您可以从私人班级拨打您的父母活动。
答案 2 :(得分:0)
让您的活动实现此界面
public class MyApp implements OnItemSelectedListener{
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
Context ctx = view.getContext();
SharedPreferences myPrefs = ctx.getSharedPreferences("hello", android.content.Context.MODE_WORLD_READABLE );
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString("city", parent.getItemAtPosition(pos).toString());
prefsEditor.commit();
Intent intent = new Intent();
intent.setClass(ctx, MainActivity.class);
MyApp.this.startActivity(intent);
}
public void onNothingSelected(AdapterView parent) {
//do nithong
}
}