Android listview - Get custom list text

I am developing an application in which I created a custom list view:

List view code in the form:

<ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_margin="15dip" android:divider="#623b42" android:dividerHeight="0.5dip" android:cacheColorHint="#00000000" android:overScrollMode="never" > </ListView> 

And xml adapter:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_toLeftOf="@+id/textview_rupee_mlsaa" android:gravity="center_vertical" android:padding="15dip" android:textColor="@color/color_black" android:textSize="15sp" tools:ignore="SelectableText" /> <TextView android:id="@+id/textview2" android:layout_width="60sp" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:gravity="center_vertical" android:padding="15dip" android:textColor="@color/color_black" android:textSize="15sp" tools:ignore="SelectableText" /> </RelativeLayout> 

Adapter .java file:

 public class ListAdapter extends ArrayAdapter<String> { /** Global declaration of variables. As there scope lies in whole class. */ private Context context; private String[] dataset1; private int[] dataset2; /** Constructor Class */ public ListAdapter(Context context,String[] ListArray1, int[] ListArray2) { super(context,R.layout.list_adapter_layout,ListArray); this.context = context; this.dataset1= ListArray1; this.dataset2= ListArray2; } /** Implement getView method for customizing row of list view. */ public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = ((Activity)context).getLayoutInflater(); // Creating a view of row. View rowView = inflater.inflate(R.layout.list_adapter_layout, parent, false); TextView tv1 = (TextView)rowView.findViewById(R.id.textview1); TextView tv2 = (TextView)rowView.findViewById(R.id.textview2); tv1.setText(data1[position]); tv2.setText(""+data2[position]); return rowView; } } 

Then I set the item listener element as a list in the form:

 listView = (ListView) findViewById(R.id.listview); listView.setOnItemClickListener(this); ListAdapter adapter = new ListAdapter(this,list1,list2); listView.setAdapter(adapter); 

Then I used onItemClickListener for the click element:

 public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { name = (String) arg0.getItemAtPosition(position); } 

Here I get the value of the first text view of the user list. But I also want the meaning of the second text view. and if I add more, then how to get the values โ€‹โ€‹of this.

Please suggest me a way to do this.

+4
source share
2 answers

Try to do it inside ur OnItemClick

 TextView text = (TextView) arg1.findViewById(R.id.urtextID); ^^^^^^ String tEXT = text.getText().toString(); 
+17
source

just a simplified version of the above answer

  public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // code in the commented section works in case of normal single textView // TextView temp=(TextView) view; // Toast.makeText(this, // temp.getText()+" is pressed "+position,Toast.LENGTH_SHORT // ).show(); TextView temp = (TextView) view.findViewById(R.id.textView1); String str = temp.getText().toString(); Toast.makeText(this, str + " is pressed " + position, Toast.LENGTH_SHORT).show(); } 
+1
source

All Articles