android - 使 ListView 中的按钮和列表可点击

标签 android listview

我有一个 ListView ,我已经成功地使列表本身可以点击。现在在列表中,我也有一个按钮。我尝试了很多方法,但我无法让按钮可点击。这是我的列表的样子

========================================
content 1               [button remove]
========================================
content 2               [button remove]
========================================
content 3               [button remove]
========================================

我可以使内容(例如:内容 1、内容 2)可点击;单击内容本身时,我已成功打开一个对话框。现在我想让 [button remove] 也可以点击,这应该会触发 toast。但是,无论我尝试什么,似乎我都无法让我的应用程序检测到已单击删除按钮。

这是我的部分代码: 我的列表.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="4dip">

    <TextView
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="0.4"
        android:id="@+id/tvDescription" />

    <TextView
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="0.1"
        android:id="@+id/tvRating" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Remove"
        android:focusable="false"
        android:clickable="true"
        android:id="@+id/btnRemoveExpenses" />


</LinearLayout>

每日.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="50dip"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:id="@+id/ll_expensesDaily"
    android:baselineAligned="false">
    <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
        </ListView>
</LinearLayout>

MyOwnList.java

    private ListView lvExpenses;
public class MyOwnList extends Fragment{
     @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        final View rootView = inflater.inflate(R.layout.daily, container, false);

lvExpenses = (ListView) rootView.findViewById(android.R.id.list);
         lvExpenses.setItemsCanFocus(true);
lvExpenses.setOnItemClickListener(expensesClickHandler);
return rootView;
}

private AdapterView.OnItemClickListener expensesClickHandler = new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView parent, View v, int position, long id)
        {
            Toast.makeText(getActivity(), " i: " + position + " long: " + id, Toast.LENGTH_SHORT).show();
            showEditExpensesDialog(expensesID.get(position));
        }
    };
}

最佳答案

将点击监听器添加到适配器中的按钮。

关于android - 使 ListView 中的按钮和列表可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27824551/

相关文章:

android - 在处理滚动和非滚动 fragment 时,CoordinatorLayout 应该放在 Activity 还是 Fragment 中?

android - 如何将一些 "metadata"附加到 Android Listview 项目?

Android ArrayAdapter过滤问题

android - "AdjustJavacVersionArguments"任务意外失败

android - 如果另一个相同的线程启动,如何停止一个线程

android - Web 服务、JSON 和 Android。结果 WS 不能正常工作

android - 延迟加载 onclick ListView

android - 在 ListView 之上添加一个 View 并在向下滚动时移动所有内容?

JavaFX - 初始化时未选择 ListView 项目

android - 如何在android中查找SQLite数据库的最后更新时间