Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
202 views
in Technique[技术] by (71.8m points)

android - How to get the selected item from ListView?

in my Android app I have created a ListView component called myList, and filled it with objects of my own custom type:

class MyClass{

    private String displayName;
    private String theValue;
... //here constructor, getters, setters and toString() are implemented

}

I used the ArrayAdapter to bound the ArrayList theObjects with myList:

ArrayAdapter<MyClass> adapter= 
                new ArrayAdapter<MyClass>(this, R.layout.lay_item, theObjects);
myList.setAdapter(adapter);

This works fine, the list is populated and etc., but when I'm trying to access the selected item, i receive a Null object. I've done this using

myList.setOnItemClickListener(new OnItemClickListener() {

   public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {

MyClass selItem = (MyClass) myList.getSelectedItem(); //
String value= selItem.getTheValue(); //getter method

}

What seems to be the problem? Thank you

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

By default, when you click on a ListView item it doesn't change its state to "selected". So, when the event fires and you do:

myList.getSelectedItem();

The method doesn't have anything to return. What you have to do is to use the position and obtain the underlying object by doing:

myList.getItemAtPosition(position);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...