0

リストビュー アダプタに問題があります。

以下の私のコードを確認してください:

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();

ここで何が問題なのですか?助けてください。ありがとう。

4

6 に答える 6

1

私はあなたが書くべきだと思う

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

それ以外の

 if( selected == "Apple" ){
}
于 2013-01-24T13:02:13.370 に答える
0
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    TextView tv = v.findViewById(R.id.myTitle);
    tv.getText().toString(); // String
} 

上記の方法で、リスト アイテムの子ビューを取得できます。

于 2013-02-05T14:18:39.350 に答える
0

変化する

 selected = parent.getItemAtPosition(yourListView.getFirstVisiblePosition() + position).toString();
于 2013-01-24T13:03:09.147 に答える
0

文字列の比較equalityには equals() メソッドを使用します。Android には 2 つの比較方法があります。

1 つは「==」演算子で、もう 1 つは「equals()」メソッドです。

"=="equals()メソッドは文字列オブジェクトの内容を比較するのに対し、文字列オブジェクトの参照値を比較します。.

使用する

selected.equals("your string")
于 2013-01-24T13:06:00.670 に答える
0

あなたの例外に従って、次のコードを使用してください。

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

また、あなたが使用した、

if( selected == "Apple" ){

文字列を比較する正しい方法ではありません. 代わりに,

if( selected.equals("Apple") ){
于 2013-01-24T13:02:36.490 に答える