Please help ListView to make ListView with its markup in 2 columns, now I can not figure out how to get the text of the fields when clicked.

Markup

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/tvName" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:paddingLeft="10dp" android:textSize="25sp" /> <TextView android:id="@+id/tvID" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:paddingRight="10dp" android:textSize="25sp" /> </LinearLayout> 

List fill code

 public class FindeActivity extends Activity { DataBaseClass sqh; SQLiteDatabase sqdb; public EditText editText; public ListView listView; public Button button; public String[] stringarray = new String[10]; public List<String> items=new ArrayList<String>();; public ListAdapter adapter; public static String query_all="SELECT fio, bithday FROM " + DataBaseClass.TABLE_INFO; public ArrayList<Contact2> list= new ArrayList<Contact2>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_finde); sqh = new DataBaseClass(this); sqdb = sqh.getWritableDatabase(); button = (Button) findViewById(R.id.button_finde); Cursor cursor = sqdb.rawQuery(query_all, null); if (cursor.getCount() > 0) { while (cursor.moveToNext()) { list.add(new Contact2(cursor.getString(cursor.getColumnIndex(DataBaseClass.FIO)),cursor.getString(cursor.getColumnIndex(DataBaseClass.Bithday)))); } } editText = (EditText) findViewById(R.id.editText_finde); listView = (ListView) findViewById(R.id.listView_clients); adapter = new SimpleAdapter(this, list, R.layout.my_listview, new String[] { Contact2.NAME, Contact2.ID }, new int[] {R.id.tvName, R.id.tvID}); listView.setAdapter(adapter); } } 

Adapter code

 public class Contact2 extends HashMap<String, String> { public static String NAME="name", ID ="id"; public Contact2(String name, String id){ super(); super.put(NAME, name); super.put(ID, id); } } 

I need a handler code

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View itemClicked, int position, long id) {} }); 
  • Get list item via getItem - Lucky_spirit

1 answer 1

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View itemClicked, int position, long id) { TextView tv1 = (TextView)itemClicked.findViewById(R.id.tvName); TextView tv2 = (TextView)itemClicked.findViewById(R.id.tvID); String name = tv1.getText().toString(); String id = tv2.getText().toString(); } });