我正在开发Android公交预约应用程序,我必须制作两个具有相同值的微调器,例如城市名称。一个微调器是选择源城市,第二个微调器是目的城市。
帮助我如何管理这两个微调器,例如在第一个微调器中选择一个项目(城市名称)隐藏第二个微调器中的该项目。
答案 0 :(得分:0)
如果您想删除该特定位置项,则可以执行以下操作:
object t=m_adapterForSpinner.getitem(pos);//whr m_arrayadapter is array adapter using for filling spinner
然后从适配器中删除项目
m_adapterForSpinner.remove((CharSequence) t);
然后用适配器再次填充微调器。
现在,如果您想隐藏特定的位置项,那么您可以这样做。
public class CustomAdapter extends ArrayAdapter<String> {
private int hidingItemIndex;
public CustomAdapter(Context context, int textViewResourceId, String[] objects, int hidingItemIndex) {
super(context, textViewResourceId, objects);
this.hidingItemIndex = hidingItemIndex;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View v = null;
if (position == hidingItemIndex) {
TextView tv = new TextView(getContext());
tv.setVisibility(View.GONE);
v = tv;
} else {
v = super.getDropDownView(position, null, parent);
}
return v;
}
}
使用如下:
int hidingItemIndex = 0;
CustomAdapter dataAdapter = new CustomAdapter(this, android.R.layout.simple_spinner_item, list, hidingItemIndex);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner.setAdapter(dataAdapter);
答案 1 :(得分:0)
这就是我为listView做的...这也应该适用于微调器我已经为微调器修改了一下
ArrayAdapter<String> arrayAdapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,yourArray);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, yourArray);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(arrayAdapter);
arrayAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(arrayAdapter2);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
//remove the selected item from other adapter
arrayAdapter2.remove(arrayAdapter.getItem(position));
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
可以使用其他适配器
完成相同的操作