Android spinner只听一次?
我尝试使用微调器在两个布局之间切换,我使用setContentView来切换。 然而,一旦我用微调器进行了选择,似乎微调器停止了“倾听”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
@覆盖
创建时的公共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练习);
}
}
thissetContentView(R.layout.add\u exercise\u static)代码>将所有视图替换为新的膨胀视图。因此,您对小部件的引用不再有效,并且您的侦听器没有侦听任何内容。好的,您现在知道是否有任何方法进行此选择吗?您只需要调用initSpinnerType();设置好视图后,请再次访问。谢谢!现在它会再听一次。现在由于spinnerType.setSelection(2,true);,我处于一个无限循环中;,它只是不断地自己选择它。在设置侦听器之前,您需要调用setselection(可能通过yout initSpinnerTypethissetContentView(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);
}
}