java - 当用户长按时更改 Android 上的任何按钮

标签 java android button

我有一些按钮,例如 btnA1、btnA2、btnA3,我希望用户可以在长按时更改按钮文本。当用户长按任何按钮时,它会提供对话框供用户填充按钮文本和一些 TextView 。这是我的代码:

btnA1.setOnLongClickListener(new Button.OnLongClickListener() {
  @Override
  public boolean onLongClick(View v) {
    dialogForm();
    return true;
  }
});

这是dialogForm函数:

private void dialogForm(){
dialog = new AlertDialog.Builder(MainActivity.this);
inflater = getLayoutInflater();
dialogView = inflater.inflate(R.layout.macro_form, null);
dialog.setView(dialogView);
dialog.setCancelable(true);
dialog.setIcon(R.mipmap.ic_launcher);
dialog.setTitle("Macro Form");

txtMacroName    = (EditText) dialogView.findViewById(R.id.txtMacroName);
txtMacroStatus    = (EditText) dialogView.findViewById(R.id.txtMacroValue);

dialog.setPositiveButton("Submit", new DialogInterface.OnClickListener() {
  @Override
  public void onClick(DialogInterface dialog, int which) {
    macroName    = txtMacroName.getText().toString();
    macroStatus    = txtMacroStatus.getText().toString();

    dialog.dismiss();
  }
});

dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  @Override
  public void onClick(DialogInterface dialog, int which) {
    dialog.dismiss();
  }
});
dialog.show();
}

我如何检测在对话框之前按下了哪个按钮,dismiss(),只有该按钮会改变;

最佳答案

尝试为您的按钮提供 id,以便当用户选择一个按钮并在对话框中键入文本时,您可以将该文本设置为该特定按钮并将其关闭。然后在设置按钮文本

dialog.setPositiveButton("Submit", new DialogInterface.OnClickListener() {
  @Override
  public void onClick(DialogInterface dialog, int which) {

    macroName    = txtMacroName.getText().toString();
    macroStatus    = txtMacroStatus.getText().toString();

    dialog.dismiss();
  }
});

在setPositivebutton方法中,只需获取edittext的值(即getText().toString),然后将其设置为按钮,如btn.setText(edittext的值)。

关于java - 当用户长按时更改 Android 上的任何按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56800857/

相关文章:

Android Gridview 和 getChildAt 与 NullPointerException

java - 用 View (按钮)覆盖 Android AlertDialog

javascript - JqueryMobile 1.4.3。图标没有出现?

c# - 单击按钮退出循环 - C#

java - 空 JSON 与 null 转换为

java - 读取二进制文件

android - Android OpenCV Highgui.imread错误的颜色

java - 如何通过单击增加数组位置的按钮来在 textView 上的数组中设置文本

java - 使用 Spring Integration 将域对象路由到适当的方法

java - 保存数据时出现问题