2012-02-13 5 views
0

Нужна помощь, пытаясь понять, почему кнопка onCLick не работает. Я поставил его в OnCreate, но не кажется, что это будет работать:Android - кнопка не срабатывает

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

     //Setup Refresh button listener. 
     Button btn = (Button) findViewById(R.id.btnRefresh); 
     btn.setOnClickListener(btnRefreshClick);  
    } 

    private OnClickListener btnRefreshClick = new OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      Toast.makeText(getApplicationContext(), "Get Data from Server", Toast.LENGTH_LONG).show(); 
     } 
    }; 
} 

Я даже взял вызов Toast и попытался написать LogCat, но когда я ставлю точку останова на заявление Log.e, он никогда попадает туда.

+1

Попробуйте удалить 'реализует OnClickListener'. – eightx2

ответ

2

Ваш код действителен и работает. Вы должны удалить implements OnClickListener, если вы не переопределяете метод onClick непосредственно в своей деятельности.

Добавить .xml на ваш вопрос, потому что проблема выглядит здесь

+0

Спасибо, после удаления OnClickListener у меня все еще была проблема, но я узнал, почему .... Я использовал setContext для другого макета, прежде чем устанавливать событие OnClickListener. Огромное спасибо! – Robert

2

Вы уверены, что нажали правую кнопку? Вы уверены, что ваш ресурс id/layout правильный?

0

Вы указываете OnClickListener в своем методе onCreate() ... это неправильно. Если ваша деятельность реализует OnClickListener, должен быть выведен метод onClick().

Использование:

btn.setOnClickListener(this); 

вместо и всплывал тост из метода OnClick() отдельно от OnCreate().

В противном случае, вы можете попробовать это вместо:

btn.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v){ 
     Toast.makeText(getApplicationContext(), "Get Data from Server", Toast.LENGTH_LONG).show(); 
    } 
}); 

Технически, ваш должен работать, хотя, поэтому убедитесь, что вы щелкаете правой кнопкой, и что вы не имеете onClick в макете XML для кнопка.

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