2016-07-11 66 views
0

Androidでボタンのテキストを変更できるようにします。ユーザーがボタンをクリックすると、何かをする必要がありますが、ボタンを長押しすると、ボタンテキストとして保存されるべきユーザーのタイプを編集テキストにポップアップする& これまで私は次のことを完了しました。Androidで長いクリックでボタンのテキストを編集できるようにする

btn1 = (Button) findViewById(R.id.button1); 
etLabel = (EditText) findViewById(R.id.etName); 

btn1.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 
       // How to pop-up edittext from here 
       // to allow user change Button name 
       btn1.setText(name); 
       return true; 
      } 
     }); 
    } 

    public void onButtonClick(View view) { 
     switch (view.getId()) { 
      case R.id.button1: 
       // do something else here 
       break; 
    } 
} 
+0

はあなたの答えを見つけるでしょう、それをグーグル、あなたの質問を投稿する前にまず調査してみてください。あなたはあなたの質問に答えるいくつかの投稿を見つけるでしょう。 – chandil03

+0

あなたはどんな問題に直面していますか? –

答えて

0

は次のようにしてみてください:

public class SOdemoAcitvity extends AppCompatActivity { 

private Button btn; 
private EditText edit; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.so_demo); 
    btn = (Button) findViewById(R.id.btn_demo); 
    edit = (EditText) findViewById(R.id.edit_text); 

    btn.setOnLongClickListener(new View.OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View v) { 
      showDialog(edit.getText().toString()); 

      return true; 
     } 


    }); 
} 

private void showDialog(String str) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("input text"); 
    View view = LayoutInflater.from(this).inflate(R.layout.dialog_view, null); 
    final EditText edit_dialog = (EditText) view.findViewById(R.id.edit_dialog); 
    edit_dialog.setText(str); 
    builder.setView(view); 
    builder.setNegativeButton("cancel",null); 
    builder.setPositiveButton("confirm", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
        btn.setText(edit_dialog.getText().toString()); 
     } 
    }); 
    builder.show(); 
} 
} 

dialog_viewのxml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="wrap_content"> 

<EditText 
android:id="@+id/edit_dialog" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" /> 
</LinearLayout> 

enter image description here

、その後

enter image description here

+0

こんにちは。あなたの解決策を試してみましたが、何も起こりません。何も起こりません。 –

+0

何が!私はテストaginを持っていますが、うまく動作します – Cgx

+0

うん。どうもありがとうございました。その作業!!! –

0

次のことができcreate a input dialogユーザー

btn1.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 

       builder.show(); 
       return true; 
      } 
     }); 
    } 

からテキストを取得し、以下のようにBTN1のテキストを設定します

builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     btn1.setText(input.getText().toString()); 
    } 
}); 
関連する問題