Как использовать onclick и onclicklistener в одной программе? - PullRequest
0 голосов
/ 09 августа 2011

У меня две кнопки в одном упражнении. Одна кнопка имеет событие onclick, а другая - onclicklistener. Если я собираюсь запустить свое приложение, оно показывает ошибку принудительного закрытия. Можно ли использовать эти два события в одной и той же деятельности?

Ответы [ 4 ]

2 голосов
/ 09 августа 2011

OnClickListener для всех кнопок следующим образом:

btn1.setOnClickListener(this);
btn2.setOnClickListener(this);

, затем добавьте событие onClick (), как показано ниже:

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v == btn1){
//Things to do  
}
if(v == btn2){
    //Things to do      
    }
}
0 голосов
/ 09 августа 2011

У вас есть два варианта:

  1. (как указано в Uttam) - реализовать один OnClickListener и добавить регистр переключателя для различения различных кнопок.

  2. Создать отдельные анонимные OnClickListener для каждой кнопки:

    btn1.setOnClickListener(new OnclickListener() {
    
        @Override
        public void onClick(View v) {
            // first button behavior
        }
    }
    
    btn2.setOnClickListener(new OnclickListener() {
    
        @Override
        public void onClick(View v) {
            // second button behavior
        }
    }
    
0 голосов
/ 09 августа 2011

Вы можете использовать ...

public class MyClass extends Activity implements OnClickListener   
{   
protected void onCreate(Bundle savedInstanceState)   
{     
super.onCreate(savedInstanceState);   

    btn1. setOnClickListener( new OnClickListener()   
    {    
      public void onClick( View v )   
      {   
        //add action for btn1.   

      }   
   });   

  btn2.setOnClickListener( this );   

}   

public void onClick( View v )   
{   

if( v== (Button)findViewById( R.id.btn2_id )   
{  

  //perform action for btn2. 

}  

}  

}   
0 голосов
/ 09 августа 2011

Не могли бы вы прислать актуальную ошибку от logcat.

ИЛИ Следующий код может быть полон помощи.

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

  public class Test2Activity extends Activity implements OnClickListener{
    private Button btn1, btn2;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    btn1 = (Button)findViewById(R.id.button1);
    btn1.setOnClickListener(this);
    btn2 = (Button)findViewById(R.id.button2);
    btn2.setOnClickListener(this);


}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.button1:
        System.out.println("Button 1 Press");
        break;
    case R.id.button2:
        System.out.println("Button 2 Press");
        break;
    default:
        break;
    }

}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...