将数组值添加到Activity中的OnItemClickListener()

时间:2012-12-24 06:25:47

标签: java android listview listactivity

我正在使用此代码:

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中实现它时,它可以帮助我。

2 个答案:

答案 0 :(得分:3)

因为getListView()ListActivity

的方法

这意味着您何时使用

  

final ListView lv = getListView();

ListView将使用super初始化,而您的简单Activity类不包含任何ListView。

ListActivity-&GT; 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);

答案 1 :(得分:0)

getListView()的调用仅适用于ListActivity。您需要以不同的方式访问ListView。在您的Activity中实现此方法:

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

(或者如果您的列表ID是其他内容,请改用该ID)