Android: getChild () EditText значения при нажатии кнопки в ExpandableListView
Развиваю Expandablelistview в Android.
В GroupView есть только заголовок, и каждая группа имеет разные ChildView.
Этот код работает нормально, и яя могу видеть разные ChildView 's в каждом элементе группы.
В ChildView у меня есть EditText, и когда я нажимаю кнопку «Готово», я хочу получить все значения EditText и Spinner, которые вводятся пользователем.
Когда я нажимаю кнопку «Готово» в то время, я хочу получить детали, которые заполняются пользователем в элементах группы.Customer
Location
и т.п.
Для примера: изображение показано под вопросом. Я хочу получить данные ввода, которые заполнены пользователем вvehicle
а такжеTEST
групповой элемент.
Пожалуйста, мне нужна помощь, я хочу получить значения, которые заполняются пользователем в каждом элементе группы child 's EditText.
Вот мой код:
MainActivity.java
public class MainActivity extends Activity {
Context mContext;
private ExpandableListView mExpandableListView;
CustomAdapter mCustomAdapter;
ArrayList newCalibration = new ArrayList();
@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 mParents;
public CustomAdapter(Context context, ArrayList 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
Изображений :
Спасибо!