Lista de visualización de Android usando expandibleListView

He seguido este tutorial de ejemplo y desarrollado una aplicación de ejemplo http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/

Introduzca aquí la descripción de la imagen

Si hago clic en Core quiero cargar una lista más en la misma pantalla en Core , ¿Cómo puedo hacer esto? Utilizando mi código abajo puedo cargar la lista de niños en otra pantalla, ayuda?

Mi código para ChildClickListener va aquí:

@Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // TODO Auto-generated method stub Log.d("onChildClick", "onChildClick"); String position = (String) parentItems.get(groupPosition); Log.d("position", position); String child = listDataChild.get(position).get(childPosition); Log.d("child", child); if (child.equalsIgnoreCase("Core")) { ArrayList<String> parentItems = new ArrayList<String>(); HashMap<String, List<String>> listDataChild = new HashMap<String, List<String>>(); ArrayList<String> childItems = new ArrayList<String>(); childItems.add("corejava"); childItems.add("corejava"); childItems.add("corejava"); childItems.add("corejava"); parentItems.add(position); listDataChild.put(parentItems.get(0), childItems); expandableList = (ExpandableListView) findViewById(R.id.lvExp); CoreAdapter adapter = new CoreAdapter(parentItems, listDataChild); CustExpListview SecondLevelexplv = new CustExpListview( MainActivity.this); adapter.setInflater( (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE), MainActivity.this); SecondLevelexplv.setAdapter(adapter); SecondLevelexplv.setGroupIndicator(null); expandableList.setAdapter(adapter); } 

4 Solutions collect form web for “Lista de visualización de Android usando expandibleListView”

Creo que necesitas usar listview expandible anidado para eso. Así que este enlace puede proporcionarte alguna ayuda. Así que utilice este.

http://www.allappsdevelopers.com/TopicDetail.aspx?TopicID=c991d70a-4570-4e4b-8378-2191a4247a84

Yo escribo un treeView adaptador para usted, usted puede utilizar esto y poner mucho nivel como usted quiere, para eso usted necesita apenas copiar el código siguiente:

Actividad principal:

 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // add data for test on one list<AccountHierarchical> AccountHierarchical obj = new AccountHierarchical(); obj.setLevelId(1); obj.setTitle("level 1"); AccountHierarchical obj2 = new AccountHierarchical(); obj2.setLevelId(1); obj2.setTitle("level 2"); AccountHierarchical obj3 = new AccountHierarchical(); obj3.setLevelId(1); obj3.setTitle("level 3"); List<AccountHierarchical> emptyList = new ArrayList<AccountHierarchical>(); obj3.setList(emptyList); List<AccountHierarchical> list2 = new ArrayList<AccountHierarchical>(); list2.add(obj3);list2.add(obj3);list2.add(obj3);list2.add(obj3);list2.add(obj3); obj2.setList(list2); List<AccountHierarchical> list = new ArrayList<AccountHierarchical>(); list.add(obj2);list.add(obj2);list.add(obj2);list.add(obj2);list.add(obj2); obj.setList(list); List<AccountHierarchical> result = new ArrayList<AccountHierarchical>(); result.add(obj);result.add(obj);result.add(obj);result.add(obj); // create Adapter TreeView adapter = new TreeView(result, this, getLayoutInflater() , false, 0); ExpandableListView expandList = (ExpandableListView)findViewById(R.id.expandableList_tree); expandList.setGroupIndicator(null); expandList.setAdapter(adapter); } 

CustExpListview:

 public class CustExpListview extends ExpandableListView { int intGroupPosition, intChildPosition, intGroupid; public CustExpListview(Context context) { super(context); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // widthMeasureSpec = MeasureSpec.makeMeasureSpec(400, // MeasureSpec.AT_MOST); heightMeasureSpec = MeasureSpec.makeMeasureSpec(600, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } 

AccountHierarchical:

 public class AccountHierarchical { List<AccountHierarchical> list; private String Title; private int Id; public int getId() { return Id; } public void setLevelId(int Id) { this.Id = Id; } public String getTitle() { return Title; } public void setTitle(String title) { Title = title; } public List<AccountHierarchical> getList() { return list; } public void setList(List<AccountHierarchical> list) { this.list = list; } } 

Vista de árbol:

 public class TreeView extends BaseExpandableListAdapter implements OnClickListener { List<AccountHierarchical> list; LayoutInflater inflatter; static Context context; boolean checkGroup; int position; static ProgressDialog ProgressDialog; public TreeView( List<AccountHierarchical> list, Context context, LayoutInflater inflatter, boolean checkGroup, int position ) { this.list = list; TreeView.context = context; this.inflatter = inflatter; this.checkGroup = checkGroup; // this is true when you call from inner. this.position = position; } @Override public Object getChild(int groupPosition, int childPosition) { return list.get(groupPosition).getList().get(childPosition); } @Override public long getChildId(int groupPosition, int childPosition) { return list.get(groupPosition).getList().get(childPosition).getId(); } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (checkGroup) groupPosition = position; List<AccountHierarchical> childtemp = list.get(groupPosition) .getList(); // call this adapter again for creating another level if (childtemp.get(childPosition).getList().size() > 0) { CustExpListview SecondLevelexplv = new CustExpListview(context); TreeView adapter = null; adapter = new TreeView(childtemp, context, inflatter, true, childPosition); SecondLevelexplv.setGroupIndicator(null); SecondLevelexplv.setAdapter(adapter); return SecondLevelexplv; } // call one layout, this is last child else { convertView = inflatter.inflate(R.layout.grouprow, null); TextView tv = (TextView) convertView.findViewById(R.id.grouprow); tv.setText(list.get(groupPosition).getList().get(childPosition) .getTitle()); tv.setPadding(0, 0, 20, 0); convertView.setTag(list.get(groupPosition).getList() .get(childPosition) ); convertView.setId(position); convertView.setOnClickListener(this); return convertView; } } @Override public int getChildrenCount(int groupPosition) { return list.get(groupPosition).getList().size(); } @Override public Object getGroup(int groupPosition) { return list.get(groupPosition); } @Override public int getGroupCount() { if (checkGroup) return 1; return list.size(); } @Override public long getGroupId(int groupPosition) { return list.get(groupPosition).getId(); } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if (convertView == null) convertView = inflatter.inflate(R.layout.grouprow, null); TextView tv = (TextView) convertView.findViewById(R.id.grouprow); if (checkGroup) tv.setText(list.get(position).getTitle()); else tv.setText(list.get(groupPosition).getTitle()); return convertView; } @Override public boolean hasStableIds() { return false; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; } @Override public void onClick(View v) { // your onClick method } } 

Activity_main.xml:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ExpandableListView android:id="@+id/expandableList_tree" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" > </ExpandableListView> </RelativeLayout> 

Grouprow.xml:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/grouprow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginBottom="20dp" android:layout_marginRight="20dp" android:layout_marginTop="20dp" android:text=""/> </RelativeLayout> 

chasquido:

Introduzca aquí la descripción de la imagen

Usted tiene que crear una disposición en el archivo del xml (de donde viene su textview de la base) y exhibir una visión de la imagen debajo de onClick de esa imagenView que usted apenas tendrá que hacer su disposición Gone y Visible Acabo de darle la dirección el resto confía en su Habilidad

  <RelativeLayout android:id="@+id/option" android:layout_width="fill_parent" android:layout_height="40dp" android:gravity="center" android:orientation="horizontal" > </RelativeLayout> <RelativeLayout android:id="@+id/linear" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:orientation="horizontal" > <ImageView android:id="@+id/navigationIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:src="@drawable/nn" /> <ImageView android:id="@+id/callOption" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/phonee" /> <ImageView android:id="@+id/imageViewfeedback" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:src="@drawable/editer" /> </RelativeLayout> 

En Archivo Jave

 linear.setVisibility(View.GONE); option.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { if(count==0) { linear.setVisibility(View.VISIBLE); count=1; } else { linear.setVisibility(View.GONE); count=0; } } }); 

Necesita cambiar a Tres niveles de ListView expandible que contiene el sub-hijo dentro de child.

También echa un vistazo a ExpandableListView con 3 Childs

  • Después de mantener el estado de colapso / expansión para nivel N o Multinivel lista ampliable algunos subgrupos no se muestran
  • ExpandableListView Animación de diapositivas en el grupo expand / collapse
  • Obtener una vista de grupo expandida de un ExpandableListView utilizando onGroupExpand
  • Clear ExpandableListView
  • Cómo llamar a notifyDataSetChanged para Custom ExpandableListView?
  • Contraer todo el grupo excepto el grupo seleccionado en el listview expandible android
  • Android ExpandableListView con animación
  • ¿Cómo conseguir pegajoso / Pinned encabezados en un ExpandableListView?
  • ExpandableListView expandir sólo en un botón específico?
  • GridView dentro de la lista expandible en android
  • Agregar animación a un ExpandableListView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.