gpt4 book ai didi

android - Android 中按钮组的 onLongClick 监听器

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:22 24 4
gpt4 key购买 nike

在我的 Android 应用程序中,我想创建一个像键盘一样工作的 fragment 。我有一个函数,可以处理所有 9 个键的 onClick。我想知道是否只需要编写一个函数来处理所有这 9 个键的 onLongClick

这是布局 xml:

   <Button
android:id="@id/testButton"
android:layout_width="70dp"
android:layout_height="55dp"
android:layout_margin="2dp"
android:background="@drawable/keypad_round_button"
android:text="1"
android:textColor="@color/black_1"
android:onClick="keypadSetNote"
android:longClickable="true"/>
<Button
android:id="@id/testButton"
android:layout_width="70dp"
android:layout_height="55dp"
android:layout_margin="2dp"
android:background="@drawable/keypad_round_button"
android:text="2"
android:longClickable="true"
android:textColor="@color/black_1"
android:onClick="keypadSetNote"
/>

这是 OnlongClick 监听器:

        Button button = (Button) findViewById(R.id.testButton);
button.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
Button clickedButton = (Button) v;
String buttonText = clickedButton.getText().toString();
Log.v(TAG, "button long pressed --> " + buttonText);
return true;
}
});

我为所有键提供了相同的 ID 以在一个函数中处理所有 onLongClick 操作,但它仅适用于第一个键。无论如何要在 Android 中定义类似组按钮的东西???或者我必须为它们分别编写 OnLongClick 监听器???

最佳答案

只需创建一个命名函数而不是匿名函数:

View.OnLongClickListener listener = new View.OnLongClickListener() {
public boolean onLongClick(View v) {
Button clickedButton = (Button) v;
String buttonText = clickedButton.getText().toString();
Log.v(TAG, "button long pressed --> " + buttonText);
return true;
}
};

button1.setOnLongClickListener(listener);
button2.setOnLongClickListener(listener);
button3.setOnLongClickListener(listener);

而且,尽管您没有提出要求,但我们必须警告您:正如@AndyRes 所说,您的按钮必须具有不同的 ID。具有相同的 ID 并不意味着通过 ID 获取按钮将返回所有按钮,只会返回具有该 ID 的第一个按钮,这是因为它只适用于第一个按钮。

关于android - Android 中按钮组的 onLongClick 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17452030/

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