亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當用戶長按時更改android上的任何按鈕

當用戶長按時更改android上的任何按鈕

慕俠2389804 2023-02-23 10:00:02
我有一些按鈕,比如 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()之前按下了哪個按鈕,只有那個按鈕會改變;
查看完整描述

2 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

根據 Sibin Davis 先生和 Karan Sandhu 先生的說法,這是最終代碼


btnA1.setOnLongClickListener(new Button.OnLongClickListener() {

  @Override

  public boolean onLongClick(View v) {

    Toast.makeText(getApplicationContext(),ttlA1,Toast.LENGTH_SHORT).show();

    dialogForm(btnA1); // <---- add this

    return true;

  }

});

和函數 dialogForm() :


private void dialogForm(final Button b1){ //<-- add this

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();

    b1.setText(macroName); // <---- add this

    dialog.dismiss();

  }


});


dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

  @Override

  public void onClick(DialogInterface dialog, int which) {

    dialog.dismiss();

  }

});

dialog.show();

}

謝謝大家


查看完整回答
反對 回復 2023-02-23
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

嘗試為您的按鈕提供 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 的值)。


查看完整回答
反對 回復 2023-02-23
  • 2 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號