gpt4 book ai didi

android - OnItemLongClickListener 在自定义 ListView 中不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:00:19 28 4
gpt4 key购买 nike

我希望在自定义 ListView 中长按一个项目后出现上下文菜单。我正在使用 ActionBarSherlock .尝试使用 Toast 通知进行调试时,我发现长按事件未被触发。如何解决这个问题?

m_vwJokeLayout=(ListView)findViewById(R.id.jokeListViewGroup);
m_vwJokeLayout.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
if(m_vwActionMode!=null)
{
Toast.makeText(getApplicationContext(), "Inside On Itemlongclick", Toast.LENGTH_LONG).show();
return false;
}
Toast.makeText(getApplicationContext(), "Inside On Itemlongclick", Toast.LENGTH_LONG).show();
m_vwActionMode=getSherlock().startActionMode(m_vwCallback);
view.setSelected(true);
return true;
}


});

声明我的 ListView 的 xml 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>

<Button
android:id="@+id/addJokeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add_joke_button"
/>
<EditText
android:id="@+id/newJokeEditText"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="2"
android:hint="@string/enter_text_edittext"
/>


</LinearLayout>

<ListView
android:id="@+id/jokeListViewGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

</ListView>



</LinearLayout>

自定义ListViewView的xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:weightSum="3" >

<LinearLayout
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:gravity="center_vertical"
android:orientation="vertical" >

<TextView
android:id="@+id/jokeTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:ellipsize="middle"
android:gravity="center"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:text="Hello,"
android:textSize="16px"


/>

</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical" >

<RadioGroup
android:id="@+id/ratingRadioGroup"
android:layout_width="40dp"
android:layout_height="60dp"
android:layout_marginRight="10dp"
android:gravity="center"

>

<RadioButton
android:id="@+id/likeButton"
android:background="@drawable/like"
android:button="@null"
/>

<RadioButton
android:id="@+id/dislikeButton"
android:background="@drawable/dislike"
android:button="@null"
/>
</RadioGroup>

</LinearLayout>

</LinearLayout>

最佳答案

这是由于列表项布局中单选按钮的可聚焦性而发生的。

将以下行添加到 ListView 的项目布局的根布局。

android:descendantFocusability="blocksDescendants"

关于android - OnItemLongClickListener 在自定义 ListView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18312197/

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