Кнопки и прослушиватель OnClick - PullRequest
1 голос
/ 07 января 2012

У меня 3 кнопки на макете.Я хочу, чтобы при нажатии на каждый из них переходил на другой экран.Что я должен сделать, это что-то вроде этого или что-то более сложное?

b1=(Button)findViewById(R.id.Button01);
b1.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
      FirstButtonClicked();
}
});

b2=(Button)findViewById(R.id.Button02);
b2.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
    SecondButtonClicked();}
});

b3=(Button)findViewById(R.id.Button03);
b3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
ThirdButtonClicked();}
});

Должен ли я возвращать что-либо относительно нажатой кнопки или, если первая кнопка нажата (например), вторая и третья не будут работать привсе?Алос, они должны быть определены внутри моего onCreate, или я мог бы определить их снаружи, как новую функцию с именем CheckButtons ();и просто вызвать его из моего on.Create () (или когда я еще хочу проверить эти кнопки)?

Ответы [ 3 ]

3 голосов
/ 07 января 2012

Этот код правильный.Чтобы перейти на другой экран, выполните следующие действия:

Intent i = new Intent(this, OtherScreen.class);
startActivity(i);

и AndroidManifest.xml добавьте разрешение для OtherScreen в тег Приложение:

 <activity android:name=".OtherScreen"> </activity>
2 голосов
/ 07 января 2012

Как у тебя, там все хорошо.В методах 1, 2, 3 по нажатию кнопки вам просто нужно запустить намерение выполнить желаемое действие.

Вам необходимо изменить идентификатор каждой кнопки, R.id.Button01, R.id.Button02, R.id.Button03

1 голос
/ 07 января 2012

Вы можете попробовать это ... Это самый простой выход ...

public class StackOverFlow extends Activity implements OnClickListener{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Button b1,b2,b3;
    Intent i;

    b1= //get handle
    b2= //get handle
    b3= //get handle
}

public void onClick(View v) {

    switch (v.getId()) {
    case b1:
        i=new Intent(StackOverFlow.this,destination1.class);
        break;

    case b2:
        i=new Intent(StackOverFlow.this,destination2.class);
        break;

    case b3:
        i=new Intent(StackOverFlow.this,destination3.class);
        break;
    default:
        break;
    }
}

}
...