如何使列表视图中的项目可点击?

2024-02-04

我一直在尝试寻找解决方案,但收效甚微。 我必须显示一个弹出窗口包含项目列表。 我能够显示窗口,但是项目点击监听器单击中的项目时不会被调用列表显示。任何有关此问题的帮助将不胜感激。

Thanks

Edit1:

public class PopUpWindowActivity extends Activity {

    /** Called when the activity is first created. */
    String[] countries = new String[] {
        "India", "USA", "Canada"
    };

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout ll = new LinearLayout(this);
        ListView lv = new ListView(this);
        lv.setAdapter(new ArrayAdapter < String > (this, android.R.layout.simple_list_item_1, countries));
        lv.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView <? > arg0, View arg1, int arg2,
                    long arg3) {
                    Log.v("clicked", (String)((TextView) arg1).getText());
                }

            });
        ll.addView(lv);
        setContentView(ll);
    }
}

在上面的代码中,我尝试创建一个布局,在其中添加了一个列表视图。这使得列表视图不再可单击。我必须这样做,因为我正在尝试实现一个弹出窗口,其中应该有多个项目以及列表视图。


列表和列表中的项目是否设置为可单击?要么以编程方式...

ListView myList = (ListView) findViewById(R.id.list_view_id);
myList.setClickable(true);

或者在 XML 中...

   <ListView xmlns:android="http://schemas.android.com/apk/res/android"
       android:clickable="true">
   ...
   </ListView>

我假设你这样做了,但有时我们甚至会错过明显的:)

EDIT:

来自安卓教程 http://developer.android.com/resources/tutorials/views/hello-listview.html以下是如何以编程方式设置 onItemClickListener。

 ListView lv = getListView();
 lv.setOnItemClickListener(new OnItemClickListener() {

   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
       // When clicked perform some action...
   }
 });

EDIT 2:

这是我的 XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/list" />

</LinearLayout>

这是我的代码

 public class HelloAndroidActivity extends Activity {

     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
         String[] countries = getResources().getStringArray(R.array.countries_array);

         ListView lv = (ListView) findViewById(R.id.list);
         lv.setAdapter(new ArrayAdapter < String > (this, R.layout.list_item, countries));
         lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                 public void onItemClick(AdapterView <? > arg0, View view, int position, long id) {
                     // When clicked, show a toast with the TextView text
                     Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
                         Toast.LENGTH_SHORT).show();

                 }

             });
     }
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使列表视图中的项目可点击? 的相关文章