android - LinearLayout 内的 ListView 不再对 OnclickListener 使用react

标签 android listview onclicklistener

我正在根据我所看过的教程设计一个简单的应用程序,并且我试图在 ListView 的每一行中简单地显示两个 TextView ,一个名称和一个价格。这有效,我可以选择该行,它将激活一个 Intent 。不过,我随后更改了 xml 代码,以便将 ListView 放置在 LinearLayout 中,以便我在屏幕顶部有一个标题。现在,当我单击任何行时,它们都会突出显示,但没有其他 react 发生。我已经尝试在 xml 中将 textviews 设置为 clickable = false 但仍然没有成功。我希望我只是在 onCreate 方法中遗漏了一些简单的东西。 `公共(public)类 ViewMenuListing 扩展 ListActivity {

public static final String ROW_ID = "row_id"; // Intent extra key
private ListView contactListView; // the ListActivity's ListView
private CursorAdapter contactAdapter; // adapter for ListView
private String tableName;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    contactListView = getListView(); // get the built-in ListView
    contactListView.setOnItemClickListener(viewContactListener);

    setContentView(R.layout.viewmenu);

    //Get table name of menu clicked. 
    Bundle extras = getIntent().getExtras();
    tableName = extras.getString("table");

    // map each contact's name to a TextView in the ListView layout
    String[] from = new String[] { "name", "price" };
    int[] to = new int[] { R.id.itemTextView, R.id.priceTextView };
    //int[] to = new int[] { R.id.itemTextView};

    contactAdapter = new SimpleCursorAdapter(
            ViewMenuListing.this, R.layout.menu_list_item, null, from, to);
    setListAdapter(contactAdapter); // set contactView's adapter
 }`

我在这段代码中唯一改变的是我现在使用了 setContentView(R.layout.viewmenu) ,而之前我没有这样做,并且列表只是内容 View 。

这是我的 viewMenu 文件:

`

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    <ListView
        android:id="@+id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>`

和我的menu_list_item.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

   <TextView 
       android:layout_width="wrap_content"
       android:layout_height="wrap_content" 
       android:id="@+id/itemTextView"
       android:padding="8dp"
       android:clickable = "false"
       android:textSize="20sp" android:textColor="@android:color/white"
       android:minHeight="?android:attr/listPreferredItemHeight"
       android:gravity="center_vertical">
    </TextView>

   <TextView 
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/priceTextView"
       android:clickable = "false"
       android:textColor="@android:color/white"/>
 </LinearLayout>

感谢您的帮助!

最佳答案

看起来您正在为 ListView 显式设置 onItemClickListener 。这确实没有必要,因为您正在扩展 ListActivity,并且 ListActivity 有一个可以重写的方法,称为 onListItemClick()。我将重写 onListItemClick() 方法,而不是显式设置 onItemClickListenerhttp://developer.android.com/reference/android/app/ListActivity.html#onListItemClick(android.widget.ListView, android.view.View, int, long)

关于android - LinearLayout 内的 ListView 不再对 OnclickListener 使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9731647/

相关文章:

android - JSON 对象到 listView

ScrollView 内的 Android ListView

javascript - 将 HTML 链接添加到 Google map 圆形元素

android - React原生+IOS

android - Cordova Android - 无法打开相机 - READ_EXTERNAL_STORAGE

c# - 是否有等同于 System.Net.Sockets.UdpClient 的 dot42?

Android:在 ListView 中移动项目窗口?

android - Android 设备上的 Sapui5 后退按钮

java - PerformClick()方法返回错误

javascript - 避免重复听众