Je veux ajouter le radiobuttons
à l'intérieur du radiogroup
du extensible listview
programmatically
l'accès à l'intérieur d'une nouvelle <code>linearlayout</code> un élément ChildView de l'adaptateur listview extensible à l'intérieur d'une activité par programme
J'ajoute les vues requises (c.-à-radiogroup
etc.) et voulez accéder au linearlayout
de l'élémentextensible de sorte que les vues ajoutées soient ajoutées dans l'élément listchild
extensible. s'il vous plaît aidez-moi dans l'accès linearlayout
à partir de XML extensible article.
Ceci est mon PollListAdapter
classe
public class PollsListAdapter extends BaseExpandableListAdapter {
private Context _context;
private List<String> _listDataHeader; // header titles
// child data in format of header title, child title
private HashMap<String, List<LinearLayout>> _listDataChild;
TextView title;
public RadioGroup rg;
Button b;
public PollsListAdapter(Context context, List<String> listDataHeader,
HashMap<String,List<LinearLayout>> listChildData) {
this._context = context;
this._listDataHeader = listDataHeader;
this._listDataChild = listChildData;
}
@Override
public Object getChild(int groupPosition, int childPosititon) {
return this._listDataChild.get(this._listDataHeader.get(groupPosition)).get(childPosititon);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
// final String childText = (String) getChild(groupPosition, childPosition);
View v=convertView;
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.polls_item, null);
}
title = (TextView) v.findViewById(R.id.title);
// rg=(RadioGroup)v.findViewById(R.id.rg);
// b=(Button)v.findViewById(R.id.submit);
Log.i("childview",title.getText().toString()+rg.getChildCount()+b);
// TextView txtListChild = (TextView) convertView.findViewById(R.id.lblListItem);
// txtListChild.setText(childText);
return v;
}
@Override
public int getChildrenCount(int groupPosition) {
return this._listDataChild.get(this._listDataHeader.get(groupPosition)).size();
}
@Override
public Object getGroup(int groupPosition) {
return this._listDataHeader.get(groupPosition);
}
@Override
public int getGroupCount() {
return this._listDataHeader.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
String headerTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.polls_header, null);
}
TextView lblListHeader = (TextView) convertView.findViewById(R.id.header);
lblListHeader.setTypeface(null, Typeface.BOLD);
lblListHeader.setText(headerTitle);
return convertView;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
Ceci est ma classe d'activité
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String,List<LinearLayout>>();
top250 = new ArrayList<LinearLayout>();
expListView = (ExpandableListView) findViewById(R.id.lvExpz);
listAdapter=new PollsListAdapter(this,null,null);
// mLinearLayout = (LinearLayout)findViewById(R.id.ll);
mLinearLayout = new LinearLayout(this);
for (int k = 1; k < a; k++) {
//create text button
TextView title = new TextView(this)
listDataHeader.add(title.getText().toString());
final RadioButton[] rb = new RadioButton[b];
RadioGroup rg = new RadioGroup(this);
rg.setOrientation(RadioGroup.VERTICAL);
for (int i = 0; i < b; i++) {
rb[i] = new RadioButton(this);
rg.addView(rb[i]);
rb[i].setText("i");
rb[i].setVisibility(View.VISIBLE);
}
mLinearLayout.addView(rg);
top250.add(mLinearLayout);
listDataChild.put(listDataHeader.get(k-1),top250);
listDataChild.values();
expListView.setAdapter(new PollsListAdapter(this, listDataHeader, listDataChild));
le main.xml contient le expandablelist et
le polls_item.xml est
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10sp"
android:layout_marginRight="10sp"
android:layout_marginTop="10sp"
android:layout_marginBottom="10sp"
android:background="@drawable/polls_single_border"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="title"
/>
<RadioGroup
android:id="@+id/rg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
Je suis coincé dessus pendant trois jours avec bonté m'aider pl z.
En ce que je comprends de votre code est que vous utilisez listview étendu, pour listview élargi, vous pouvez avoir vue différent pour l'enfant et le groupe ... visitez ce lien http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/. Si vous trouvez de la difficulté en acier, faites le moi savoir –
Oui, je sais qu'il y a différents enfants et les vues de groupe le scenerio je fais face est que je n'ai aucune idée quant à la façon d'accéder à l'article de childview dans le groupview extensible – mominapk