ANDROID可以获取选定的项目字符串

时间:2013-01-24 12:58:45

标签: android listview

我的listview适配器出了问题。

请检查下面的代码:

public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    // TODO Auto-generated method stub
    String selected;

    selected = parent.getItemAtPosition(position).toString();

    if( selected == "Apple" ){
        Intent apple = new Intent(Fruits.this, Apples.class);
        startActivity(apple);
    }
    else if( selected == "Apricot" ){
        Intent apricot = new Intent(Fruits.this, Apricots.class);
        startActivity(apricot);
    }
    else if( selected == "Avocado" ){
        Intent avocado = new Intent(Fruits.this, Avocado.class);
        startActivity(avocado);
    }

} // end of OnItemClick method

每当我选择一行时,它就会在这一行上抛出一个nullpointerexception:

        selected = parent.getItemAtPosition(position).toString();

这是什么问题?请帮忙。感谢。

6 个答案:

答案 0 :(得分:1)

我认为你应该写

 if( selected.equals("Apple")){
//Do your Code
}

而不是

 if( selected == "Apple" ){
}

答案 1 :(得分:0)

根据您的例外情况,请使用以下代码

selected = parent.getItem(position).toString();

你也用过,

if( selected == "Apple" ){

比较字符串的方法不正确,而不是使用

if( selected.equals("Apple") ){

答案 2 :(得分:0)

更改

 selected = parent.getItemAtPosition(yourListView.getFirstVisiblePosition() + position).toString();

答案 3 :(得分:0)

为了比较字符串的equality,我们使用equals()方法。 Android中有两种比较方式。

一个是“==”运算符和另一个“equals()”方法。

"=="比较字符串对象的引用值,而equals()方法比较字符串对象的内容。

使用

selected.equals("your string")

答案 4 :(得分:0)

public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    TextView tv = v.findViewById(R.id.myTitle);
    tv.getText().toString(); // String
} 

您可以像上面那样获取列表项的子视图。

答案 5 :(得分:0)

如果您的适配器包含模型,请使用以下代码:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        itemDrawer seleted = (itemDrawer) parent.getItemAtPosition(position);

        Toast.makeText(getApplicationContext(), seleted.getTitle(), Toast.LENGTH_SHORT).show();
    }