【问题标题】:Android: how to set click events on ListView?Android:如何在 ListView 上设置点击事件?
【发布时间】:2010-05-24 15:46:20
【问题描述】:

我希望能够在单击 ListView 中的项目时打开新视图或活动。

目前我有一个餐厅列表,当我点击某家餐厅时,我希望它打开另一个屏幕,显示其地址、谷歌地图等。

我需要帮助的是知道如何在列表中的项目上设置点击事件。 目前我没有这些项目的数据库,它们只是字符串。 有人可以帮我把我带到这个阶段吗?

非常感谢。

package com.example.androidrestaurant;

导入android.os.Bundle; 导入 android.widget.ArrayAdapter; 导入 android.widget.TextView; 导入android.app.ListActivity;

公共类 Dundrum 扩展 ListActivity { 文本视图选择;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    setListAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, DUNDRUM));
    getListView().setTextFilterEnabled(true);

  }

静态最终字符串[] DUNDRUM = 新字符串[] {

    "Ananda",
    "Brambles Cafe", "Brannigans", "Buona Sera",
    "Cafe Mao", "Cafe Mimo",
    "Dante", "Douglas & Kaldi Terrace Cafe",
    "Eddie Rockets",
    "Frango's World Cuisine",
    "Nando's",
    "Overends Restaurant @ Airfield House",
    "Pizza Hut",
    "Roly Saul",
    "Siam Thai","Smokey Joes","Sohag Tandoori",
    "TGI Friday","The Rockfield Lounge", "Winters Bar" };
};

【问题讨论】:

    标签: android listview listadapter


    【解决方案1】:

    你需要这样做:

    // Store your listview into local variable
    ListView lv = getListView();
    
    lv.setTextFilterEnabled(true);
    
    // Bind onclick event handler
    lv.setOnItemClickListener(new OnItemClickListener() {
                  public void onItemClick(AdapterView<?> parent, View view,
                      int position, long id) {
    
                          // Put in your code here, what you wanted trigger :)
                  }
    });
    

    【讨论】:

      【解决方案2】:

      如果您在ListActivity 中使用ListView,请覆盖onListItemClick()。否则,将setOnItemClickListener()ListView 一起使用。无论哪种情况,您都会获得一个位置,即数组的索引。

      有关示例项目,请参阅 here

      【讨论】:

      • 我在上面的帖子中编辑了我的代码。我需要在这里添加一个 onListItemClick() 来打开新的活动吗?
      • 您需要添加onListItemClick() 以了解何时单击列表项。
      • 好的,我想知道接下来的活动和观点。如果我有 50 家餐厅,我肯定不必在我的项目中为每个单独的一个有 50 个不同的活动/xml 文件吗?这样做的最佳方法是什么?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多