这个问题的答案可能非常明显,但令我头疼.我有一个简单的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);
}
Run Code Online (Sandbox Code Playgroud)
但由于某种原因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>
Run Code Online (Sandbox Code Playgroud)
列表项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>
Run Code Online (Sandbox Code Playgroud)
Ami*_*far 15
这花了我6个小时来弄清楚但事实证明我必须补充:
android:focusable="false"
Run Code Online (Sandbox Code Playgroud)
到我的所有<Button/>标签.
相关文章:每行中的TextView和Button以及onListItemClick()
| 归档时间: |
|
| 查看次数: |
8550 次 |
| 最近记录: |