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但我不知道如何在 Activity 中实现它,请帮助我。

4

2 回答 2

3

因为getListView()ListActivity的方法

这意味着当你使用

最终列表视图 lv = 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 回答