2016-04-28 5 views
-1

私はカスタムダイアログのクラスを持っています。私は、このクラスでどのクラスの値がクリックされたのかを知る必要があります。どうすればいいの? これはコードです:ダイアログの値を取得

public class ViewDialog { 
public void showDialog(final Activity activity, String msg, String idFriend){ 
    final Dialog dialog = new Dialog(activity); 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    dialog.setCancelable(false); 
    dialog.setContentView(R.layout.dialog_friends); 
    String info; 

    TextView text = (TextView) dialog.findViewById(R.id.text_dialog); 
    text.setText(msg); 

    Button dialogButton = (Button) dialog.findViewById(R.id.my_btn1); 
    dialogButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      info = "Button 1"; 
     } 
    }); 

Button dialogButton2 = (Button) dialog.findViewById(R.id.my_btn2); 
    dialogButton2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      info = "Button 2"; 
     } 
    }); 
} 

}

と活動を呼び出す:あなたのActivityにいくつかの変数を作ることができ

ViewDialog alert = new ViewDialog(); 
    alert.showDialog(this, "Test", item.getFriendIconeRid()); 
    //show value of info String 
+0

**このクラスでクリックされた値は何ですか** –

答えて

0

1.
ダイアログには、Activityへのリンクがあり、ちょうどactivity.your_variable = "info1/2"と設定されています。

2.あなたがボタンをクリックし、処理する必要がある場合は、あなたがして、ダイアログコールactivity.your_methodで、Activityにいくつかの処理方法を行うことができます。

3,さらに、ActivityOnClickListenerを実装することもできます。
ダイアログで、ActivityをあなたのButtonsにOnClickListenerとして設定します。
onClick()には、着信ID:Viewv.getId())があり、それによってあなたの行動が決まります。

PS。とにかく、ボタンごとに別々にOnClickListenerオブジェクトを作成する必要はありません。
DialogOnClickListenerを実装し、Viewに応じて、あなたの行動を行います。

+0

非常に良い、問題を修正しました。ありがとう –