我有一个 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/