Getting switch value from user list in android

I have a custom list and a switch in each line, it works correctly, but I want to reach the identifier of the selected switch from this code. For example, when I need the textview1 value of a selected row, how can I assemble it? Thank you in advance. Here is my code:

private static class Adapter extends BaseAdapter { private LayoutInflater mInflater; private int mResourceId = 0; private RadioButton mSelectedRB; private int mSelectedPosition = -1; public CitizenAdapter(Context context) { mInflater = LayoutInflater.from(context); } public int getCount() { return array.size(); } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(final int position, View convertView, ViewGroup parent) { final ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.table_row_citizen, null); holder = new ViewHolder(); holder.text1 = (TextView) convertView.findViewById(R.id.TextView01); holder.text2 = (TextView) convertView.findViewById(R.id.TextView02); holder.button = (RadioButton)convertView.findViewById(R.id.radioButtonCitizen); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.text1.setText(array1.get(position)); holder.text2.setText(array2.get(position)); holder.button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if((position != mSelectedPosition && mSelectedRB != null)){ mSelectedRB.setChecked(false); } mSelectedPosition = position; mSelectedRB = (RadioButton)v; } }); if(mSelectedPosition != position){ holder.button.setChecked(false); }else{ holder.button.setChecked(true); if(mSelectedRB != null && holder.button!= mSelectedRB){ mSelectedRB = holder.button; } } return convertView; } static class ViewHolder { TextView text1; TextView text2; RadioButton button; } } 
+1
source share
3 answers

I want to get the id of the selected switch from this code.

You need to play with the setTag & get getTag to get the actual id switch you selected,

 holder.button.setTag(position); holder.button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { int pos = (Integer) v.getTag(); Log.i("ID of radiobutton","Order Edit @ position : " + pos); String _Str1=array1.get(pos); String _Str2=array2.get(pos); } }); 

This way you get the exact textview values ​​from your rows.

0
source

Assuming you need to access a TextView in the onClick method,

 @Override public void onClick(View v) { if((position != mSelectedPosition && mSelectedRB != null)){ mSelectedRB.setChecked(false); } mSelectedPosition = position; mSelectedRB = (RadioButton)v; View containerView = (View)v.getParent(); TextView textView1 = (TextView)containerView.findViewById(R.id.TextView01); } 

EDIT:

I see that you declared the holder object as final . In this case, you can directly access the holder.text1 and holder.text2 from the event listener.

0
source

Code like this in your onClick button

  int selected_radioISAwayGroup = holder.radioISAwayGroup.getCheckedRadioButtonId(); holder.radioISAwayButton = (RadioButton) findViewById(selected_radioISAwayGroup); System.out.println("holder.radioISAwayButton:"+holder.radioISAwayButton.getText().toString()); if(holder.radioISAwayButton.getText().toString().equalsIgnoreCase("Pre")) { //Count +1 for presents } else if(holder.radioISAwayButton.getText().toString().equalsIgnoreCase("Abs")) { //Count +1 for Absents } else { //Count +1 for Half } 
0
source

All Articles