3
假設我在微調列表中有10個項目。 和項目編號3已被選中。現在,當用戶想要改變他的選擇時,我想給出某種指示這是已經選擇的項目(項目編號3)。我想通過複選標記或設置某種背景或類似方式來實現此目的。突出顯示預先選定的微調項目
任何人都可以請幫我解決這個問題嗎?
假設我在微調列表中有10個項目。 和項目編號3已被選中。現在,當用戶想要改變他的選擇時,我想給出某種指示這是已經選擇的項目(項目編號3)。我想通過複選標記或設置某種背景或類似方式來實現此目的。突出顯示預先選定的微調項目
任何人都可以請幫我解決這個問題嗎?
我使用此功能的自定義適配器。只需將其從BaseAdapter
中擴展出來,並將您的看法擴大爲Spinner
和Droppdown
控件。
List<String> stagesValues = new ArrayList<>(stagesResults.values());
mStageSpn.setAdapter(new DropdownAdapter(mContext, stagesValues, mStageSpn));
public class DropdownAdapter extends BaseAdapter {
private final LayoutInflater mInflater;
private List<String> mData;
private Spinner mStageSpn;
public DropdownAdapter(Context context, List<String> data, Spinner stageSpn) {
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mData = data;
mStageSpn = stageSpn;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = mInflater.inflate(android.R.layout.simple_spinner_item, null);
((TextView) view.findViewById(android.R.id.text1)).setText(mData.get(mStageSpn.getSelectedItemPosition()));
return view;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = mInflater.inflate(R.layout.spinner_item, null);
if (mStageSpn.getSelectedItemPosition() == position)
view.setBackgroundColor(Color.RED);
((TextView) view.findViewById(R.id.text_id)).setText(mData.get(position));
return view;
}
}