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

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

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

public class MyCustomAdapter extends BaseExpandableListAdapter {


private LayoutInflater inflater;
private ArrayList mParent;
public MyCustomAdapter(){}
public MyCustomAdapter(Context context, ArrayList 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 mArrayChildren;

public String getTitle() {
    return mTitle;
}

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

public ArrayList getArrayChildren() {
    return mArrayChildren;
}

public void setArrayChildren(ArrayList 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();

 }   
 }

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

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

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