2017-05-12 5 views
0

私は、リンクリストの前に数字を挿入するボタンと、リンクリストの最後に数字を挿入するボタンがあるとします。私はこれを持ってAlertDaialogと私は両方のボタンでそれを使用しようとしています。どのように私は、ダイアログボックスで "OK"を押すと、onClickメソッドは、番号(フロントまたはエンド)を挿入する場所を知っているように、お互いからボタンを区別することができます。 私はこのようなものを試しましたが、動作しません。デフォルトのケースのみが有効になります。1つのAlertDialogを2つのアクションにリンクするにはどうすればよいですか?

ok.setOnClickListener(new View.OnClickListener(){ 

     @Override 
     public void onClick(View v) { 
      String input = inputText.getText().toString().trim(); 
      int numberInput = Integer.parseInt(input); 

      switch (v.getId()){ 
       case R.id.btn_front: //insert to the beginning 
        break; 
       case R.id.btn_end: //insert to the end 
        break; 
       default: Log.e("DIALOG_ERROR", "Error!"); 
      } 


     } 
    }); 
+0

理由だけではなく、2 onClickListenersを持っていませんか?私はAlertDialogを再利用してここに何かを保存しているかどうかはわかりません – Scott

+0

@Scottこれは良い習慣ですか?愚かな質問を申し訳ありません、私はちょうどアンドロイドを学び始めました。 – sziko

+0

コード内の行数を減らすよりも簡単なワークフローに優先順位を付けることをお勧めします。再利用したい共通のAlertDialog設定がある場合は、詳細を含むクラスを作成しますが、リスナーをパラメータとして追加します。それは両方の目標を達成するだろう。 – Scott

答えて

0
Use a class that extend dialog like: 
DialogClass obj=new DialogClass(context,true); 
obj.show(); 
class will be: 
public DialogClass(final Context context,Boolean isAddToFront) { 
    super(context); 
    setContentView(R.layout.dialog_layout); 
    setTitle(Title); 
TextView Ok = (TextView) findViewById(R.id.ok); 
Ok.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if(isAddToFront){ 
      /// Add to front 
     }else{///add to back} 
    }); 

}

関連する問題