所以我想做的是,将 OnLongClickListener 设置为 ListView 按钮。我设法将一个 OnClickListener 放到它上面,我还尝试将一个 OnLongItemClick 放到我的整个 ListView 中,但问题是,当我按下项目中的某个按钮时,永远不会调用 OnLongItemClick。
我可以通过使用 android:onClick="myOnClickListener" 将 OnClickListener 放到 ListView-Rows 的 XML 文件中的按钮上,但这不适用于 OnLongClickListener。
我还尝试将 OnLongClickListener 设置为普通 OnClickListener 中的按钮,但这不是我真正想要的,因为它只是在正常单击它后才起作用。
有没有办法以编程方式将 OnLongClickListener 设置为按钮?它们在每一行中都必须是唯一的。顺便说一句,我没有扩展 ListActivity。
这是按钮的 OnClickListener:
//I attached this in my XML-File to the Button
public void handlerForPlus(View v)
{
//The LinearLayout where all my Items are in
LinearLayout myItemLayout = (LinearLayout)v.getParent();
//A random EditText in my Layout
editTextCountItem = (EditText) myItemLayout.getChildAt(0);
//The Button i want to add the OnLongClickListener to
buttonItemPlus = (Button)myItemLayout.getChildAt(1);
//Here i set the OnLongClickListener to the button, but I want to do this before it gets clicked normally.
buttonItemPlus.setOnLongClickListener(this);
editTextCountItem.setText((Integer.toString(Integer.parseInt(editTextCountItem.getText().toString()) + 1)));
myItemLayout.refreshDrawableState();
}
这是我的 ListView-Items 的 LinearLayout 的 XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="40" >
<EditText
android:id="@+id/etAnzahl"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginTop="5dp"
android:layout_weight="5"
android:text="0" />
<!-- This is the Button i want to set a OnLongClickListener to. -->
<Button
android:id="@+id/bItemPlus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="25"
android:onClick="handlerForPlus"
android:text="Item" />
<Button
android:id="@+id/bItemMinus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:onClick="handlerForMinus"
android:text="-" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:weightSum="10"
android:layout_weight="5"
android:orientation="vertical" >
<TextView
android:id="@+id/tvPriceItemSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="5"
android:text="PreisS" />
<TextView
android:id="@+id/tvPriceItemLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="5"
android:text="PreisL" />
</LinearLayout>
</LinearLayout>
那么有人知道什么可以解决我的问题吗?
最好的问候,亚历克斯。