我想在android中的应用程序中添加多个微调器栏菜单。我是一个初学者,我只创建了一个旋转棒。当我创建下一个时,效果不好。试图在这里添加下一个微调器,但当我这样做时,它会在第一个微调器中显示第二个表中的值。应该是第一个旋转器-第一张桌子等。提前感谢您的帮助。
public class SecondPan extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
private Spinner sspnOption6,sspn2;
private TextView ttxOption6,ttx;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second_pan);
Spinner spinner = findViewById(R.id.sspn);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.tab1, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long l) {
String text = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(),text, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
}
您已经声明了两个Spinners
ssOption6和sspn2,但从未使用过它们。此外,您只获得了一个id为sspn的微调器的引用。
所以现在获得对另一个id的引用,也为它们创建不同的ArrayAdapters
,这样就不会获得所选位置的第二个微调器中第一个微调器的值。
做出这些改变。
您在onCreate((之前已经声明了两个微调器:
private Spinner sspnOption6Spinner;
private Spinner sspn2Spinner;
参考这些观点,你以前只有一个。
// Check your id's from layout.
sspnOption6Spinner = findViewById(R.id.sspn_options6);
sspn2Spinner = findViewById(R.id.sspn);
设置ArrayAdapters
ArrayAdapter<CharSequence> firstSpinnerAdapter = ArrayAdapter.createFromResource(this,R.array.tab1, android.R.layout.simple_spinner_item);
firstSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sspnOption6Spinner.setAdapter(adapter);
ArrayAdapter<CharSequence> secondSpinnerAdapter = ArrayAdapter.createFromResource(this,R.array.tab2, android.R.layout.simple_spinner_item);
secondSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sspn2Spinner.setAdapter(adapter);
现在设置监听器,两者都应该有自己的:
sspnOption6Spinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String text = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(),text, Toast.LENGTH_SHORT).show();
}
});
sspn2Spinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String text = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(),text, Toast.LENGTH_SHORT).show();
}
});
如果需要,可以设置onNothingSelected()
此外,请阅读文档,其中包含所有详细信息。