2015-12-31 3 views
2

Я использовал раскрывающийся список в моем приложении. Теперь то, что я хочу сделать, это пользователь, чтобы показать только один нижестоящих элементов одновременно .... Если пользователь нажимает на первый элемент, то вид должен быть ..using Расширяемое listview как переключатель

Пункт 1:

кнопка Radio 1

кнопка

Радио 2

пункт 2:

теперь, если после нажатия первого пункта, когда пользователь нажимает на второй, то он должен показать ..

пункт 1:

Пункт 2:

Радиокнопка Кнопка 1

Радио 2

, как достичь этого?

моего метод getChildView адаптера есть ..

@Override 
public View getChildView(int groupPosition, int childPosition, 
         boolean isLastChild, View convertView, ViewGroup parent) { 

    Child child = (Child) getChild(groupPosition, childPosition); 
    if (convertView == null) { 
     LayoutInflater infalInflater = (LayoutInflater) context 
       .getSystemService(context.LAYOUT_INFLATER_SERVICE); 
     convertView = infalInflater.inflate(R.layout.child_item, null); 
    } 
    RadioButton rb1 = (RadioButton) convertView.findViewById(R.id.rbtn1); 
    RadioButton rb2 = (RadioButton) convertView.findViewById(R.id.rbtn2); 



    return convertView; 
} 

child_item содержит радио группы здесь, и getGroupView метода ..

@Override 
public View getGroupView(int groupPosition, boolean isExpanded, 
         View convertView, ViewGroup parent) { 
    Group group = (Group) getGroup(groupPosition); 
    if (convertView == null) { 
     LayoutInflater inf = (LayoutInflater) context 
       .getSystemService(context.LAYOUT_INFLATER_SERVICE); 
     convertView = inf.inflate(R.layout.group_item, null); 
    } 
    TextView tv = (TextView) convertView.findViewById(R.id.group_name); 
    tv.setText(group.getName()); 
    return convertView; 
} 

Проблемы здесь есть, после нажатия первого, если я нажму во-вторых, тогда как первый, так и второй находятся в контролируемом состоянии и отображают контент, а не только содержимое второго содержания. Я установил CHOICE_MODE в «Единственный выбор» .. но его не помогло.

ответ

0

Даже я не знаю никаких встроенных функций, но вы можете попробовать этот код.

YourexpandableList.setOnGroupExpandListener(new OnGroupExpandListener() { 
     int previousGroup = -1; 

    @Override 
    public void onGroupExpand(int groupPosition) { 
     if(groupPosition != previousGroup) 
      YourexpandableList.collapseGroup(previousGroup); 
     previousGroup = groupPosition; 
    } 
}); 
+0

Спасибо, сэр :) – Newbiee

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