Android: getChild () Editar los valores de texto en el botón hacer clic en ExpandableListView
Estoy desarrollando Expandablelistview en Android.
En GroupView solo tiene un título y cada grupo tiene ChildView diferente.
Este código funciona bien y puedo ver diferentes ChildView en cada elemento del Grupo.
En ChildView tengo un EditText y cuando hago clic en el botón hecho, quiero obtener todos los valores de EditText y Spinner que son entradas por usuario.
Cuando hago clic en el botón Terminado en ese momento, quiero obtener detalles que llenó el usuario en los elementos del GrupoCustomer
Location
etc.
Por ejemplo: la imagen mostrada en cuestión. Quiero obtener los detalles de entrada que se llenan por usuario envehicle
yTEST
elemento de grupo
Por favor, necesito ayuda, quiero obtener los valores que llena el usuario en cada elemento de grupo, EditText.
Aquí está mi código:
MainActivity.java
public class MainActivity extends Activity {
Context mContext;
private ExpandableListView mExpandableListView;
CustomAdapter mCustomAdapter;
ArrayList<String> newCalibration = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mContext = MainActivity.this;
newCalibration.add("CUSTOMER");
newCalibration.add("LOCATION");
newCalibration.add("VEHICLE");
newCalibration.add("TEST");
newCalibration.add("ABC");
/* genarate data for list view */
// genarateData();
/* instantiate adapter with our item list */
mCustomAdapter = new CustomAdapter(mContext, newCalibration);
/* we get list view */
mExpandableListView = (ExpandableListView) findViewById(R.id.explist_tools);
/* set adapter to list view */
mExpandableListView.setAdapter(mCustomAdapter);
mExpandableListView
.setOnGroupExpandListener(new OnGroupExpandListener() {
int previousGroup = -1;
@Override
public void onGroupExpand(int groupPosition) {
// TODO Auto-generated method stub
if (groupPosition != previousGroup) {
mExpandableListView.collapseGroup(previousGroup);
previousGroup = groupPosition;
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
CustomAdapter.java
public class CustomAdapter extends BaseExpandableListAdapter {
private LayoutInflater layoutInflater;
/* list of parent */
private ArrayList<String> mParents;
public CustomAdapter(Context context, ArrayList<String> parents) {
super();
this.mParents = parents;
layoutInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public Object getChild(int parentPosition, int childPosition) {
return null;
}
@Override
public long getChildId(int parentPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public View getChildView(int parentPosition, int childPosition, boolean b,
View convertView, ViewGroup viewGroup) {
if (convertView == null) {
convertView = layoutInflater
.inflate(R.layout.list_item_child, null);
}
EditText mEdTxt_1 = (EditText) convertView.findViewById(R.id.edtxt_1);
EditText mEdTxt_2 = (EditText) convertView.findViewById(R.id.edtxt_2);
EditText mEdTxt_3 = (EditText) convertView.findViewById(R.id.edtxt_3);
EditText mEdTxt_4 = (EditText) convertView.findViewById(R.id.edtxt_4);
EditText mEdTxt_5 = (EditText) convertView.findViewById(R.id.edtxt_5);
RelativeLayout relativeLayout = (RelativeLayout) convertView
.findViewById(R.id.relativeLayout);
mEdTxt_1.setVisibility(View.VISIBLE);
mEdTxt_2.setVisibility(View.VISIBLE);
mEdTxt_3.setVisibility(View.VISIBLE);
mEdTxt_4.setVisibility(View.VISIBLE);
mEdTxt_5.setVisibility(View.VISIBLE);
relativeLayout.setVisibility(View.VISIBLE);
if (mParents.get(parentPosition).equals("CUSTOMER")) {
mEdTxt_4.setVisibility(View.GONE);
mEdTxt_5.setVisibility(View.GONE);
relativeLayout.setVisibility(View.GONE);
} else if (mParents.get(parentPosition).equals("LOCATION")) {
mEdTxt_4.setVisibility(View.GONE);
mEdTxt_5.setVisibility(View.GONE);
relativeLayout.setVisibility(View.GONE);
} else if (mParents.get(parentPosition).equals("VEHICLE")) {
relativeLayout.setVisibility(View.GONE);
} else if (mParents.get(parentPosition).equals("TAXIMETER/BCT")) {
mEdTxt_3.setVisibility(View.GONE);
mEdTxt_4.setVisibility(View.GONE);
mEdTxt_5.setVisibility(View.GONE);
} else if (mParents.get(parentPosition).equals("TIRE SPECS")) {
mEdTxt_4.setVisibility(View.GONE);
mEdTxt_5.setVisibility(View.GONE);
relativeLayout.setVisibility(View.GONE);
}
return convertView;
}
@Override
public int getChildrenCount(int parentPosition) {
return 1;
}
@Override
public Object getGroup(int parentPosition) {
// TODO Auto-generated method stub
return mParents.get(parentPosition);
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return mParents.size();
}
@Override
public long getGroupId(int parentPosition) {
// TODO Auto-generated method stub
return parentPosition;
}
@Override
public View getGroupView(int parentPosition, boolean isExpanded,
View convertView, ViewGroup viewGroup) {
TextView groupName = null;
String parent = (String) getGroup(parentPosition);
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.list_item_parent,
null);
}
groupName = (TextView) convertView.findViewById(R.id.txt_parentname);
groupName.setText(parent);
return convertView;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int i, int i1) {
return true;
}
}
list_item_child.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item_child"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/edtxt_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:inputType="text" />
<EditText
android:id="@+id/edtxt_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:inputType="text" />
<EditText
android:id="@+id/edtxt_3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:inputType="text" />
<EditText
android:id="@+id/edtxt_4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:inputType="text" />
<EditText
android:id="@+id/edtxt_5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:inputType="text" />
<RelativeLayout
android:id="@+id/relativeLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioGroup
android:id="@+id/radio_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="Radio 1" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Radio 2" />
</RadioGroup>
<TextView
android:id="@+id/txt_childname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/radio_group"
android:text="TaxiMeter ?"
android:textAppearance="?android:attr/textAppearanceSmall" />
<Switch
android:id="@+id/switch1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/radio_group"
android:text="Switch" />
</RelativeLayout>
</LinearLayout>
Imágenes:
¡Gracias!