gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 00:40:28 48 4
gpt4 key购买 nike

我正在根据我看过的教程设计一个简单的应用程序,我试图在 ListView 的每一行中简单地显示两个 TextView ,一个名称和一个价格。这行得通,我可以选择该行,它会激活一个 Intent 。但是,我随后更改了我的 xml 代码,以便将 listview 放置在 linearLayout 中,以便我在屏幕顶部有一个标题。现在,当我单击任何行时,它们会突出显示,但没有其他任何反应。我已经尝试在 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/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com