2014-10-01 2 views
0

Я делаю простой калькулятор GPA для проекта, мы сделали это сначала с помощью xml, и теперь мой профессор хочет его динамически. У меня есть 4 текстовых изображения, 4 кнопки edittext и 1. Все работает нормально и работает, но когда я пытаюсь setOnClickListener(), программа выйдет из строя. Как я могу заставить кнопку работать программно. Вот что я пытаюсь.setOnClickListener to Button Programmatically ERROR

 android.widget.LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    LinearLayout layout = new LinearLayout(this); 
    layout.setOrientation(LinearLayout.VERTICAL); 

    // button 
    Button button1 = new Button(this); 
    final int button1id = View.generateViewId(); 
    button1.setId(button1id); // id 
    button1.setText("Send Data"); 
    button1.setLayoutParams(params); 
    layout.addView(button1); 
    button1 = (Button) findViewById(button1id); 

    OnClickListener clicks = new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if(v.getId() == button1id){ 
       Intent i = new Intent(getApplicationContext(), SecondActivity.class); 
       startActivity(i); 

      } 

     } 
    }; 

тогда, когда я это называю, это дает мне ошибку.

button1.setOnClickListener(clicks); 

Заранее спасибо.

+1

Можете ли вы отправить сообщение об ошибке вы получаете? –

ответ

4

Dont do findViewById. Просто позвоните по телефону:

button1.setOnclickListner(new View.OnClickListener() { 

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

       Intent i = new Intent(getApplicationContext(), SecondActivity.class); 
       startActivity(i); 
     } 
    }); 

Это позволит решить вашу проблему.

0

Нет необходимости больше КНОПКА ид вызвать также изменение View.OnClickListener только OnClickListener

android.widget.LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    LinearLayout layout = new LinearLayout(this); 
    layout.setOrientation(LinearLayout.VERTICAL); 

    // button 
    Button button1 = new Button(this); 
    final int button1id = View.generateViewId(); 
    button1.setId(button1id); // id 
    button1.setText("Send Data"); 
    button1.setLayoutParams(params); 
    layout.addView(button1); 
    button1.setOnClickListener(clicks) 

    OnClickListener clicks = new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if(v.getId() == button1id){ 
       Intent i = new Intent(getApplicationContext(), SecondActivity.class); 
       startActivity(i); 

      } 

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