How to get data from user adapter in ListView?

here is my problem:

I created a custom adapter for my ListView, and I get the information from the list that I pass to this adapter to let it execute my ListView. He is doing everything right. Now I would like to implement OnItemClickListener and get data from it. But in this list I have 4 TextViews ...

How to get data ?

I already know how to get the identifier and position, since I show them in Toast.

Many thanks for your help!

Here is a custom adapter:

public class NextRdvAdapter extends ArrayAdapter<NextRdv> { private List<NextRdv> listNextRdv = new ArrayList<NextRdv>(); private Context context; public NextRdvAdapter(List<NextRdv> nextRdvList, Context ctx) { super(ctx, R.layout.list_next_rdv, nextRdvList); this.listNextRdv = nextRdvList; this.context = ctx; } public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { // This a new view we inflate the new layout LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.list_next_rdv, parent, false); } // Now we can fill the layout with the right values TextView tvTimeStart = (TextView) convertView.findViewById(R.id.next_time_start); TextView tvTimeEnd = (TextView) convertView.findViewById(R.id.next_time_end); TextView tvEnterprise = (TextView) convertView.findViewById(R.id.next_enterprise_name); TextView tvAddress = (TextView) convertView.findViewById(R.id.next_address); NextRdv rdv = listNextRdv.get(position); tvTimeStart.setText(rdv.getStartTime()); tvTimeEnd.setText(rdv.getEndTime()); tvEnterprise.setText(rdv.getEnterprise()); tvAddress.setText(rdv.getAddress()); return convertView; } } 

Here is my snippet that owns a ListView:

 public class HomeFragment extends Fragment implements OnItemClickListener{ float density; //Everything you need about this rdv private ListView lvThisRdv; private List<NextRdv> listThisRdv = new ArrayList<NextRdv>(); private NextRdvAdapter ThisRdvAdapter; private NextRdvListBouchon thisBouchon; //Everything you need about next rdv private ListView lvNextRdv; private List<NextRdv> listNextRdv = new ArrayList<NextRdv>(); private NextRdvAdapter nextRdvAdapter; private NextRdvListBouchon bouchon; public HomeFragment(){} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_home, container, false); lvThisRdv = (ListView)rootView.findViewById(R.id.listView_this_RDV); thisBouchon = new NextRdvListBouchon(); listThisRdv = thisBouchon.getBouchonInc(); ThisRdvAdapter = new NextRdvAdapter(listThisRdv, getActivity()); lvThisRdv.setAdapter(ThisRdvAdapter); //Displaying the list of the next meetings lvNextRdv = (ListView)rootView.findViewById(R.id.listView_next_RDV); //Get test data bouchon = new NextRdvListBouchon(); listNextRdv = bouchon.getBouchon(); nextRdvAdapter = new NextRdvAdapter(listNextRdv, getActivity()); lvNextRdv.setAdapter(nextRdvAdapter); lvNextRdv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // Toast toast = Toast.makeText(getActivity(), "Pos : " +position+ " / id : " + id, Toast.LENGTH_SHORT); toast.show(); } }); return rootView; } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { } } 
+6
source share
2 answers

inside onItemClick you can use the AdapterView argument,

 NextRdv item = (NextRdv) parent.getItemAtPosition(position) 
+9
source

You can use below code

  lvNextRdv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // selected item String selected =((TextView)view.findViewById(R.id.your_textView_item_id)).getText().toString(); Toast toast=Toast.makeText(getApplicationContext(), selected, Toast.LENGTH_SHORT); toast.show(); } }); 

using this u, you can get the data of any custom TextView adapter for the selected row.

Hope will help you ...

+5
source

Source: https://habr.com/ru/post/970303/


All Articles