2013-09-02 3 views
0

Я это пользовательского диалогового класса:Dialog OnClick не отвечает

public class CustomDialog extends Dialog implements android.view.View.OnClickListener{ 

     public Activity c; 
     public Dialog d; 
     public Button cancelButton; 
     public LinearLayout smsButton, emailButton; 

     public CustomDialog(Activity a) { 
     super(a); 
     // TODO Auto-generated constructor stub 
     this.c = a; 
     } 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.custom_dialog); 
     smsButton = (LinearLayout)findViewById(R.id.smsButton); 
     emailButton = (LinearLayout)findViewById(R.id.emailButton); 
     cancelButton = (Button)findViewById(R.id.cancelButton); 

     } 

     @Override 
     public void onClick(View v) { 
     switch (v.getId()) { 
     case R.id.smsButton: 
      Toast.makeText(getContext(), "SMS", Toast.LENGTH_SHORT).show(); 
      break; 
     case R.id.emailButton: 
      Toast.makeText(getContext(), "EMAIL", Toast.LENGTH_SHORT).show(); 
      break; 
     case R.id.cancelButton: 
      dismiss(); 
      break; 
     default: 
     break; 
     } 
     dismiss(); 
     } 

} 

и в моей основной деятельности я реализую это как:

btn = (Button)findViewById(R.id.reportVAW); 

     btn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 


       CustomDialog cd = new CustomDialog(MainActivity.this); 
       cd.show(); 

      } 
     }); 

Все, кажется, прекрасно работать, но onClickListeners для кнопок, похоже, не работает. В пользовательского класса диалогового окна , как показано в коде:

@Override 
     public void onClick(View v) { 
     switch (v.getId()) { 
     case R.id.smsButton: 
      Toast.makeText(getContext(), "SMS", Toast.LENGTH_SHORT).show(); 
      break; 
     case R.id.emailButton: 
      Toast.makeText(getContext(), "EMAIL", Toast.LENGTH_SHORT).show(); 
      break; 
     case R.id.cancelButton: 
      dismiss(); 
      break; 
     default: 
     break; 
     } 
     dismiss(); 
     } 

Все это не работает вообще, любая идея, почему?

ответ

1

Вы никогда не устанавливаете onClickListener на кнопки. Вот чего не хватает:

onCreate(Bundle savedInstanceState) { 
    // your existing code 
    smsButton.setOnClickListener(this); 
    emailButton.setOnClickListener(this); 
    cancelButton.setOnClickListener(this); 
} 
+0

это было глупо ... большое спасибо :) –

+1

вы можете захотеть принять ответ, а также. – flx

Смежные вопросы