Android spinner只听一次?

Android spinner只听一次?,android,spinner,listener,android-spinner,Android,Spinner,Listener,Android Spinner,我尝试使用微调器在两个布局之间切换,我使用setContentView来切换。 然而,一旦我用微调器进行了选择,似乎微调器停止了“倾听” @覆盖 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity\u add\u练习); getSupportActionBar().setHomeButtonEnabled(true); initSpi

我尝试使用微调器在两个布局之间切换,我使用setContentView来切换。 然而,一旦我用微调器进行了选择,似乎微调器停止了“倾听”

@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u add\u练习);
getSupportActionBar().setHomeButtonEnabled(true);
initSpinnerType();}
public void initSpinnerType()
{
喷丝头类型=(喷丝头)findViewById(R.id.Spinner\u类型\u培训);
ArrayAdapter=ArrayAdapter.createFromResource(此,
R.array.trainingtype_数组,android.R.layout.simple_微调器_项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头类型。设置适配器(适配器);
喷丝头类型=(喷丝头)findViewById(R.id.Spinner\u类型\u培训);
spinnerType.setOnItemSelectedListener(此);
}
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
if(items[position].equals(“Static”))
{
setContentView(R.layout.add\u exercise\u static);
喷丝头类型=(喷丝头)findViewById(R.id.Spinner\u类型\u培训);
喷丝头类型选择(1,正确);
System.out.println(“静态”);
//按钮。设置可见性(视图。可见);
}
else if(items[position].equals(“动态”))
{
setContentView(R.layout.add\u exercise\u static);
喷丝头类型=(喷丝头)findViewById(R.id.Spinner\u类型\u培训);
喷丝头类型选择(2,正确);
System.out.println(“动态”);
}
其他的
{
系统输出打印(“有氧运动”);
//按钮。设置可见性(视图。可见);
setContentView(R.layout.activity\u add\u练习);
}
}

this
setContentView(R.layout.add\u exercise\u static)将所有视图替换为新的膨胀视图。因此,您对小部件的引用不再有效,并且您的侦听器没有侦听任何内容。好的,您现在知道是否有任何方法进行此选择吗?您只需要调用initSpinnerType();设置好视图后,请再次访问。谢谢!现在它会再听一次。现在由于spinnerType.setSelection(2,true);,我处于一个无限循环中;,它只是不断地自己选择它。在设置侦听器之前,您需要调用setselection(可能通过yout initSpinnerTypethis
setContentView(R.layout.add_exercise_static)中的参数);
将所有视图替换为新的膨胀视图。因此,您对小部件的引用不再有效,并且您的侦听器没有侦听任何内容。好的,现在是否有任何方法进行此选择?您只需调用initSpinnerType();再次设置视图后谢谢!现在它会侦听一次以上。现在由于spinnerType,我处于无限循环中。setSelection(2,true);,它只会继续自行选择。在设置侦听器之前,您需要调用setSelection(可能通过yout initSpinnerType中的参数)
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_exercise);
    getSupportActionBar().setHomeButtonEnabled(true);
            initSpinnerType();}

    public void initSpinnerType()
{
    spinnerType = (Spinner) findViewById(R.id.spinner_type_of_training);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.trainingtype_array, android.R.layout.simple_spinner_item);

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    spinnerType.setAdapter(adapter);

    spinnerType = (Spinner) findViewById(R.id.spinner_type_of_training);
    spinnerType.setOnItemSelectedListener(this);

}
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    if(items[position].equals("Static"))
    {
        setContentView(R.layout.add_exercise_static);
        spinnerType = (Spinner)findViewById(R.id.spinner_type_of_training);
        spinnerType.setSelection(1,true);
        System.out.println("static");

        //button.setVisibility(View.VISIBLE);
    }

    else if(items[position].equals("Dynamic"))
    {
        setContentView(R.layout.add_exercise_static);
        spinnerType = (Spinner)findViewById(R.id.spinner_type_of_training);
        spinnerType.setSelection(2,true);
        System.out.println("dynamic");
    }
    else
    {
        System.out.println("cardio");
        //button.setVisibility(view.VISIBLE);
        setContentView(R.layout.activity_add_exercise);

    }
 }