Android: один идентификатор кнопки, много кнопок, один идентификатор представления, используя getTag (), setTag ()

Я могу отобразить все или выборочное количество записей с помощью getAllRecords () и getRecord (длинный идентификатор). Дело в том, что я хочу отображать разные записи для каждой кнопки просмотра в моем раскрывающемся списке child.each. У каждого ребенка есть кнопка view, прикрепленная к ней. Позиция группы известна (1-я группа). но положение ребенка кажется невозможно отследить. У меня есть только один идентификатор ресурса. как я должен отображать разные записи для каждого ребенка тогда? Пожалуйста, помогите, так как это смущает меня до глубины души. Вот код MyCustomAdapter.java, код Parent.java и код DisplayCursor.java. Я очень старался придумать это, пытаясь найти способы извлечь дочерний идентификатор и извлечь эту конкретную запись из id.but все напрасно. ОБНОВЛЕНИЕ: обнаружил, что мне нужно использовать getTag () и viewTag (), чтобы это произошло. Но я не нахожу ресурсов в сети, чтобы правильно показать мне, как это сделать в этом случае. Пожалуйста, направьте меня.

Код MyCustomAdapter. (содержит расширяемые функции списка getchildview и getgroupview)

public class MyCustomAdapter extends BaseExpandableListAdapter {


private LayoutInflater inflater;
private ArrayList<parent> mParent;
public MyCustomAdapter(){}
public MyCustomAdapter(Context context, ArrayList<parent> parent){
    mParent = parent;
    inflater = LayoutInflater.from(context);
}


@Override
//counts the number of group/parent items so the list knows how many times calls getGroupView() method
public int getGroupCount() {
    return mParent.size();
}

@Override
//counts the number of children items so the list knows how many times calls getChildView() method
public int getChildrenCount(int i) {
    return mParent.get(i).getArrayChildren().size();
}

@Override
//gets the title of each parent/group
public Object getGroup(int i) {
    return mParent.get(i).getTitle();
}

@Override
//gets the name of each item
public Object getChild(int i, int i1) {
    return mParent.get(i).getArrayChildren().get(i1);
}

@Override
public long getGroupId(int i) {
    return i;
}

@Override
public long getChildId(int i, int i1) {
    return i1;
}

@Override
public boolean hasStableIds() {
    return true;
}

@Override
//in this method you must set the text to see the parent/group on the list
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {

    if (view == null) {
        view = inflater.inflate(R.layout.investment_summary_parent, viewGroup,false);
    }

    TextView textView = (TextView) view.findViewById(R.id.list_item_text_view);
    //"i" is the position of the parent/group in the list
    textView.setText(getGroup(i).toString());

    //return the entire view
    return view;
}

@Override
//in this method you must set the text to see the children on the list
public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
    if (view == null) {
        view = inflater.inflate(R.layout.investment_summary_child, viewGroup,false);

    }
   // viewbutton.getTag();
    TextView textView = (TextView) view.findViewById(R.id.list_item_text_child);
    //"i" is the position of the parent/group in the list and 
    //"i1" is the position of the child
    textView.setText(mParent.get(i).getArrayChildren().get(i1));

    //return the entire view
    return view;
}

@Override
public boolean isChildSelectable(int i, int i1) {
    return true;
}

@Override
public void registerDataSetObserver(DataSetObserver observer) {
    /* used to make the notifyDataSetChanged() method work */
    super.registerDataSetObserver(observer);
}
}

Родительский код (расширяемые родительские методы)

public class parent {
private String mTitle;
private ArrayList<String> mArrayChildren;

public String getTitle() {
    return mTitle;
}

public void setTitle(String mTitle) {
    this.mTitle = mTitle;
}

public ArrayList<String> getArrayChildren() {
    return mArrayChildren;
}

public void setArrayChildren(ArrayList<String> mArrayChildren) {
    this.mArrayChildren = mArrayChildren;
}
}

Код DisplayCursor: открытый класс DisplayCursor extends ListActivity {DBAdapter db = new DBAdapter (this);

@Override
public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_cursor);
filldata();

}
@SuppressWarnings("deprecation")
public void filldata(){
db.open();

Cursor cursor = db.getRecord(2);//displays 2nd record
startManagingCursor(cursor);

String[] columns = new String[] {DBAdapter.invest_type,DBAdapter.curr_per_share_price, DBAdapter.share_name,
        DBAdapter.no_of_shares,DBAdapter.share_identity,DBAdapter.purchase_price,
        DBAdapter.purchase_from,DBAdapter.purchase_date,DBAdapter.purchase_contact};

int[] to = new int[] { R.id.investmenttype,R.id.currpershareprice,R.id.sharename,R.id.shareno,R.id.shareid,    R.id.purprice,
        R.id.purfrom,R.id.purdate,R.id.purcon};
 SimpleCursorAdapter mAdapter = new SimpleCursorAdapter( this, R.layout.row, cursor, columns, to);
 this.setListAdapter(mAdapter);
 db.close();

 }   
 }

ПОЖАЛУЙСТА, укажите мне, какие изменения я должен внести, чтобы отобразить разные записи для каждой кнопки просмотра. То есть, если нажата первая дочерняя кнопка просмотра, должна отображаться первая запись, нажатие кнопки просмотра второго дочернего элемента означает, что должна отображаться вторая запись. Итак, скажем, у меня 3 ребенка, 3 соответствующие кнопки просмотра и 3 записи.

Ответы на вопрос(0)

Ваш ответ на вопрос