0

私はこのコードを使用しています:

final ListView lv = getListView();
    lv.setTextFilterEnabled(true);  
    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {              
            @SuppressWarnings("unchecked")

            HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);                   
            Intent intent = new Intent(TestActivity.this, TestDetailActivity.class);
            intent.putExtra("id_card", o.get("id_card"));
            intent.putExtra("card_title", o.get("card_title"));
            intent.putExtra("card_number", o.get("card_number"));
            startActivity(intent);
        }
    });

私はHashMap<String, String> o = (HashMap<String, String>)意図して別のアクティビティに渡すいくつかの値を取得するために使用しています。

使用すると機能しますListActivityが、アクティビティに実装する方法がわかりません。助けてください。

4

2 に答える 2

3

getListView()ListActivityのメソッドであるため

つまり、使用するとき

最終的なListViewlv= getListView();

ListViewはで初期化されsuperますが、単純なActivityクラスにはListViewが含まれていません。

ListActivity-> ListActivityは、さまざまなデータソースにバインドできるListViewオブジェクトをホストします

Activityクラスで同じものを使用するには、明示的なListViewを使用し、IDでマップする必要があります

<ListView android:id="@+id/list_view"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"/>

これで、このように初期化できます

final ListView lv = (ListView) findViewById(R.id.list_view);
于 2012-12-24T06:31:50.890 に答える
0

の呼び出しはでgetListView()のみ機能しListActivityます。別の方法でListViewにアクセスする必要があります。アクティビティにこのメソッドを実装します。

public ListView getListView()
{
    return findViewById(android.R.id.list);
}

(または、リストIDが別のものである場合は、代わりにそのIDを使用してください)

于 2012-12-24T06:32:06.090 に答える