我有一个包含动态数组数据的微调器。当我在微调器中选择值并向下滚动并再次向上滚动时,值会重置,这背后可能是什么原因,我该如何避免它。以下是我的代码:
spinner.setVisibility(View.VISIBLE);
spinner.setOnItemSelectedListener(UserSurveyAdapter.this);
List<String> list = new ArrayList<String>();
int arraysize = oi.getOptList().size();
Log.d(LOG_TAG, "Size ==" +arraysize );
for (int k = 0; k <arraysize; k++) {
if(k == 0){
list.add("");
}else{
list.add(oi.getOptList().get(k));
}
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, list) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
if (position == getCount()) {
((TextView)v.findViewById(android.R.id.text1)).setText("");
((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount())); //"Hint to be displayed"
}
return v;
}
@Override
public int getCount() {
return super.getCount()-1; // you don't display last item. It is used as hint.
}
};
adapter.setDropDownViewResource(R.layout.custom_spinner_list);
spinner.setAdapter(adapter);
spinner.setSelection(adapter.getCount()); //set the hint the default selection so it appears on launch.
spinner.setOnItemSelectedListener(this);
notifyDataSetChanged();
答案 0 :(得分:0)
如果您想在微调器中查看选定/更改的数据,那么
首先,如果是微调器,请创建值的数组/ arraylist。 其次,在其中放置一个布尔值,如active(true或false)。 第三,当您从微调器中选择该值时,默认值为active。
注意:必须在适配器中传递此数组。因此,getView始终获取此数组的值。
供您参考,请查看此示例ListView