2013-07-19 3 views
0

У меня есть требование, чтобы при вводе почтового индекса и нажатии клавиши ввода на эмуляторе/планшете я получаю список имен операторов в ListView. Внутри Listview Я использую checktextview для заполнения данных с помощью адаптера собственного массива.Первые данные в списке должны быть отмечены по умолчанию

Список должен быть проверен только при одном имени оператора. Всякий раз, когда данные заполняются в список, первое имя оператора должно быть проверено по умолчанию.

Есть ли способ найти решение проблемы.

Я использую адаптер пользовательский массив как этот

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; 
    } 
} 

ответ

0

Да. в getView вместо

if (checked != null) { 
    checkedTextView.setChecked(true); 
} 

Использование:

if (position == 0) { 
    checkedTextView.setChecked(true); 
} 
else{ 
    checkedTextView.setChecked(false) 
} 
+0

в checkedtextview я, используя селектор для проверки и uncheck.so с этим селектором не функционирует – user2587727

Смежные вопросы