How to extract the text from the selected item on the listView
I have a listview with some items. I would like to get the text from the selected item.
Here is my list adapter and the onItemClickListener:
ListView lv = (ListView)findViewById(R.id.listView1);
lv.setAdapter(new ArrayAdapter<Country>(
this,R.layout.list_black_text,R.id.list_content, values));
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
??????
}});
}
Could you tell me please how to get the String from the selected item.
the method ((TextView) view).getText() does not work, i have a
ClassCastException: android.widget.LinearLayout
I have found the solution, maybe somebody will need it:
ListView lv = (ListView)findViewById(R.id.listView1);
lv.setAdapter(new ArrayAdapter<Country>(
this,R.layout.list_black_text,R.id.list_content, values));
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView textView = (TextView) view.findViewById(R.id.list_content);
String text = textView.getText().toString();
System.out.println("Choosen Country = : " + text);
}});
Solution 1:
Use this:
String selectedFromList = (String) (lv.getItemAtPosition(position));
Whatever the datatype you are having in your list, cast accordingly.
Hope it will help. :)
Solution 2:
For this you need to write the following:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView textView = (TextView) view.findViewById(R.id.list_content);
String text = lv.get(position).toString().trim();
System.out.println("Chosen Country = : " + text);
}});
Solution 3:
The other answers look good, but I thought I'd wrap everything
up into one complete answer.
There are multiple ways
to achieve this and it also depends on whether you are getting text from simple listView
or from Custom ListView(with custom_list_item.xml).
For Simple ListView
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String text = lv.get(position).tostring().trim();//first method
final String text = ((TextView)view).getText();// second method
}});
For Custom ListView
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView textView = (TextView) view.findViewById(R.id.list_content);
//where list_content is the id of TextView in listview_item.xml
}});
Problem with others Answers
@Android Killer
string Casting is missing.
@Rishi
doesn't give detail about using R.id.list_content