tipos studio sgoliver seleccionar recyclerview item adaptadores android listview button record expandable

studio - Android: ID de un botón, muchos botones, una ID de vista, usando getTag(), setTag()



sgoliver listview (0)

Puedo mostrar todo o un número selectivo de registros usando getAllRecords () y getRecord (identificación larga). Lo que quiero es mostrar un registro diferente para cada botón de vista en mi lista desplegable child.each child tiene un botón de vista adjunto. Se conoce la posición del grupo. (1er grupo). pero la posición del niño parece imposible de rastrear. Tengo solo una identificación de recursos. ¿cómo se supone que debo mostrar diferentes registros para cada niño, entonces? por favor ayuda ya que esto me confunde al núcleo. aquí está el código MyCustomAdapter.java, el código Parent.java y el código DisplayCursor.java. He intentado muchísimo pensarlo, tratando de encontrar formas de extraer la identificación del niño y extraer ese registro particular de la identificación. Pero todo fue en vano. ACTUALIZACIÓN: descubrí que necesito usar getTag () y viewTag () para que esto suceda. Pero no encuentro ningún recurso en la red que me muestre cómo hacerlo en este caso. Por favor diríjanme.

Código MyCustomAdapter. (contiene funciones de lista ampliable getchildview y 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); } }

Código principal (métodos padres expandibles)

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; } }

Código DisplayCursor: public class DisplayCursor extiende 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(); } }

POR FAVOR, diríjanme qué cambios debo hacer para mostrar diferentes registros para cada botón de vista. Es decir, si se hace clic en el primer botón de vista de niño, primero debe mostrarse el registro, se hace clic en el botón de vista del segundo niño implica que debe mostrarse el segundo. así sucesivamente. Supongo que tengo 3 hijos, 3 botones de vista correspondientes y 3 registros.