Как получить/идентифицировать уникальную идентификационную иерархию. Ниже мой фрагмент кода фот getChildView (...)Получение уникального идентификатора в виде иерархии getchildView (...) в android
public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
final ExpandListChild child = (ExpandListChild) getChild(groupPosition, childPosition);
if (convertView == null)
{
LayoutInflater infalInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.manage_insurance, null);
}
company = (EditText) convertView.findViewById(R.id.et_CompanyName);
interest = (EditText) convertView.findViewById(R.id.et_Interest);
duration = (EditText) convertView.findViewById(R.id.et_Duration);
btnSave = (Button) convertView.findViewById(R.id.btnSave);
btnDelete = (Button) convertView.findViewById(R.id.btnDelete);
company.setTag(R.id.string_key1, childPosition);
//interest.setTag(childPosition, childPosition);
//duration.setTag(childPosition, childPosition);
btnSave.setTag(R.id.string_key2, childPosition);
//btnDelete.setTag(childPosition, childPosition);
company.setText(child.getCompanyName().toString());
interest.setText(child.getInterest()+"");
duration.setText(child.getDuration()+"");
btnSave.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
int viewtag = (Integer) v.getTag(R.id.string_key2);
if (childPosition == viewtag){
durationValue = (duration.getText().toString().equals("") ? 0.0f : Float.parseFloat(duration.getText().toString()));
interestValue = (interest.getText().toString().equals("") ? 0.0f : Float.parseFloat(interest.getText().toString()));
Log.v("durationValue", "durationValue ======" + durationValue +"========"+ interestValue);
if (checkingForEmptyFields()){
int updatedRows = dbManager.updateInsurance(companyValue, durationValue, 15);
if (updatedRows > 0){
Toast.makeText(mContext, "Successfully updated", Toast.LENGTH_SHORT).show();
mContext.startActivity(new Intent(mContext, InsurancePanelInflator.class));
}
else
{
Toast.makeText(mContext, "Problem occured while updating", Toast.LENGTH_SHORT).show();
}
}
else
{
Toast.makeText(mContext, "Fill Mandatory Fields First", Toast.LENGTH_SHORT).show();
}
}
}
});
Теперь на нажмите кнопку Сохранить в изображении ниже, когда я GetText всегда получить нижние значения строки, так как все точки зрения имеют тот же идентификатор. Пожалуйста, помогите мне.
Вы повторно использовать те же идентификаторы в каждой записи, используйте идентификатор записи, чтобы получить запись, а затем вызвать findViewById на эту запись, чтобы получить текущую компанию, интерес и продолжительность. Например. listview содержит элементы с одинаковым идентификатором для всех видов внутри, элементы различаются, используя идентификаторы элементов самого элемента, а не идентификаторы изнутри. – Tobrun
спасибо за комментарии к ур. Это не работает для меня: expandableRow = (LinearLayout) convertView.findViewById (R.id.lnrExpListRow); \t \t \t company = (EditText) expandableRow.findViewById (R.id.et_CompanyName); \t \t interest = (EditText) expandableRow.findViewById (R.id.et_Interest); \t \t duration = (EditText) expandableRow.findViewById (R.id.et_Duration); \t \t btnSave = (кнопка) expandableRow.findViewById (R.id.btnSave); \t \t btnDelete = (кнопка) expandableRow.findViewById (R.id.btnDelete); – sns