我如何从微调onitemSelected方法调用一个意图

时间:2011-09-13 15:23:15

标签: android android-widget

我的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
    }
}

3 个答案:

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



}