Android 列表视图不可单击或长可单击
我有一个自定义的Android 列表视图不可单击或长可单击,android,android-listview,Android,Android Listview,我有一个自定义的列表视图,但无法管理点击和长点击 这是ListActivity的XML: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical
列表视图
,但无法管理点击
和长点击
这是ListActivity
的XML
:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:descendantFocusability="blocksDescendants"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@id/activity_main_l2"
android:layout_marginTop="44dp"
android:layout_gravity="bottom"
android:gravity="bottom">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/main"
android:layout_gravity="center"
android:gravity="bottom"
android:visibility="visible"
android:id="@id/activity_main_search_layer">
<EditText android:id="@id/activity_main_search_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/message_field"
android:hint="@string/Search_hint"
android:textColor="@color/textFieldColor"
android:layout_gravity="center"
android:maxLines="8"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:paddingRight="10dp"
android:paddingBottom="10dp"
android:textSize="14dp"
android:singleLine="true"/>
</LinearLayout>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="#00000000"
android:background="#ffffff"
android:fastScrollAlwaysVisible="true"
android:fastScrollEnabled="true"
android:listSelector="#00000000"
android:focusable="true"
android:focusableInTouchMode="true"
android:clickable="true"
android:longClickable="true"/>
</LinearLayout>
<include layout="@layout/header1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/include"/>
<include layout="@layout/draver_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/include1"/>
</FrameLayout>
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView parent, View view, int position, long id) {
some code...
}
});
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
some code...
}
});
在列表活动中
:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:descendantFocusability="blocksDescendants"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@id/activity_main_l2"
android:layout_marginTop="44dp"
android:layout_gravity="bottom"
android:gravity="bottom">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/main"
android:layout_gravity="center"
android:gravity="bottom"
android:visibility="visible"
android:id="@id/activity_main_search_layer">
<EditText android:id="@id/activity_main_search_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/message_field"
android:hint="@string/Search_hint"
android:textColor="@color/textFieldColor"
android:layout_gravity="center"
android:maxLines="8"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:paddingRight="10dp"
android:paddingBottom="10dp"
android:textSize="14dp"
android:singleLine="true"/>
</LinearLayout>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="#00000000"
android:background="#ffffff"
android:fastScrollAlwaysVisible="true"
android:fastScrollEnabled="true"
android:listSelector="#00000000"
android:focusable="true"
android:focusableInTouchMode="true"
android:clickable="true"
android:longClickable="true"/>
</LinearLayout>
<include layout="@layout/header1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/include"/>
<include layout="@layout/draver_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/include1"/>
</FrameLayout>
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView parent, View view, int position, long id) {
some code...
}
});
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
some code...
}
});
有什么建议吗?您的代码很好,但我们需要更多的代码来了解发生了什么。从适配器的以下回调返回什么:>getView()>getItemId()>getCount()。共享适配器的代码您想让用户对行中的特定视图执行任何操作(如编辑文本…),还是只想知道他是按了还是长按了整个列表项?好的,似乎长按一个文本视图的原因是android:phoneNumber=“true”标记,当我删除此标记时,长单击不调用从列表行(从每个视图)中删除以下属性android:focusable=“false”android:focusableInTouchMode=“false”android:genderantfocusability=“blocksDescendants”表单,然后重试