0

だから私がやろうとしているのは、OnLongClickListener を ListView ボタンに設定することです。OnClickListener を配置することができ、ListView 全体に OnLongItemClick を配置しようとしましたが、問題は、アイテム内の特定のボタンを押したときに OnLongItemClick が呼び出されないことです。

Android:onClick="myOnClickListener" を使用して、ListView-Rows の XML ファイルのボタンに OnClickListener を配置できましたが、これは 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>

それで、私の問題を解決できるものを誰か知っていますか?

よろしく、アレックス。

4

1 に答える 1

1

buttonItemPlus.setOnLongClickListener(this);ListView 全体に効果があります。あなたが探していると思うのはbuttonItemPlus.setOnItemLongClickListener(this);、ListView の特定の TextView に影響を与えるものです。

于 2013-01-21T08:42:18.947 に答える