gpt4 book ai didi

android - registerForContextMenu 无法正确调用 - 我做错了什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:20 26 4
gpt4 key购买 nike

这个问题的答案可能很明显,但让我很头疼。我有一个简单的 LinearLayout,其中包含一个 ListView。我这样做:onCreate

public void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.friends);
ListView listView = (ListView) findViewById(R.id.friend_list);
listAdapter = new CheckinListAdapter(checkins, listView, R.layout.checkin_list_item);
listView.setAdapter(listAdapter);

if (getLastNonConfigurationInstance() != null) {
FriendsActivity last = (FriendsActivity) getLastNonConfigurationInstance();
this.checkins.addAll(last.checkins);
this.sort = last.sort;
} else {
refresh();
}
registerForContextMenu(listView);
}

但由于某些原因,onCreateContextMenu 从未被调用!所以我做了一些研究,因为我在注册后加载列表,也许它没有正确注册。如果我进入我的 ListAdapter 并执行 registerForContextMenu,它就会显示出来。但它在键盘上的行为不正确。所以我现在对错误可能是什么感到困惑,因为必须注册每个子项目对我来说似乎有点不直观。我在网上找到的所有示例都使用了 ArrayAdapter。 :(

有什么建议吗?

编辑

这里有更多细节,以防我看不到:

我的 XML 文件

<?xml version="1.0" encoding="utf-8"?>

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

<Button android:text="@string/check_in"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onCheckInClicked"/>

<ListView android:id="@+id/friend_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>

列表项 xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="5dip"
android:paddingBottom="5dip">
<ImageView android:id="@+id/user_photo"
android:layout_width="40dip"
android:layout_height="40dip"
android:scaleType="centerCrop"/>

<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginLeft="8dip">
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:id="@+id/user" style="@style/TextButton"/>

<TextView android:text="@string/at"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<Button android:id="@+id/venue"
android:singleLine="true"
android:ellipsize="end"
style="@style/TextButton"/>

</LinearLayout>

<TextView android:id="@+id/venue_address" style="@style/GreyLarge"/>

<LinearLayout android:id="@+id/checkin_detail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dip"
android:layout_marginBottom="6dip">

<ImageView android:id="@+id/checkin_image"
android:layout_width="70dip"
android:layout_height="60dip"
android:layout_marginRight="8dip"
android:scaleType="centerCrop"/>

<TextView android:id="@+id/checkin_shout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

</LinearLayout>

<TextView android:id="@+id/elapsedTime" style="@style/GreySmall"/>
</LinearLayout>
</LinearLayout>

最佳答案

这花了我 6 个小时才弄清楚,但事实证明我必须添加:

android:focusable="false"

给我所有的<Button/>标签。

相关帖子:TextView and Button in each row and onListItemClick()

关于android - registerForContextMenu 无法正确调用 - 我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4186313/

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