0
我有一個要求,當我輸入郵政編碼並按下模擬器/平板電腦上的回車鍵時,我得到ListView中的操作員名稱列表。在ListView內部我正在使用checkedtextview來填充使用我的自定義數組適配器的數據。默認情況下應檢查列表視圖中的第一個數據
應該在一次只檢查一個操作員名稱時檢查listview。無論何時將數據填充到列表視圖中,默認情況下都應檢查第一個操作員名稱。
有什麼方法可以找出解決方案。
我使用自定義陣列適配器這樣
private class OperatorListAdapter extends ArrayAdapter<String> {
private HashMap<Integer, Boolean> selectOperatorStatusMap = new HashMap<Integer, Boolean>();
public OperatorListAdapter(Context context, int resource, List<String> objects) {
super(context, resource, objects);
selectOperatorStatusMap.put(0, true);
for (int i = 1; i < objects.size(); i++) {
selectOperatorStatusMap.put(i, false);
}
}
public void toggleChecked(int position) {
if (selectOperatorStatusMap.get(position)) {
selectOperatorStatusMap.put(position, false);
} else {
selectOperatorStatusMap.put(position, true);
}
notifyDataSetChanged();
}
public void unChecked(int position) {
for (int i = 0; i < selectOperatorStatusMap.size(); i++) {
if(i!=position){
checkedTextView.setChecked(false);
checkedTextView.setCheckMarkDrawable(R.drawable.uncheck);
}
}
}
public List<Integer> getCheckedItemPositions() {
List<Integer> checkedItemPositions = new ArrayList<Integer>();
for (int i = 0; i < selectOperatorStatusMap.size(); i++) {
if (selectOperatorStatusMap.get(i)) {
(checkedItemPositions).add(i);
}
}
return checkedItemPositions;
}
public List<String> getCheckedItems() {
List<String> checkedItems = new ArrayList<String>();
for (int i = 0; i < selectOperatorStatusMap.size(); i++) {
if (selectOperatorStatusMap.get(i)) {
(checkedItems).add(operatorList.get(i));
}
}
return checkedItems;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater inflater = getActivity().getLayoutInflater();
row = inflater.inflate(R.layout.provider_list, parent, false);
}
checkedTextView = (CheckedTextView) row.findViewById(R.id.list_text);
checkedTextView.setText(operatorList.get(0));
Log.i(TAG, "OperatorListAdapter:"+operatorList.get(0));
Boolean checked = selectOperatorStatusMap.get(position);
if (checked != null) {
checkedTextView.setChecked(true);
}
return row;
}
}
在checkedtextview我使用支票選擇和uncheck.so這種選擇不工作 – user2587727