Android: переключение на другое действие с помощью события кнопки?

1

Я хочу изменить текущую активность на другую деятельность в Android с помощью кнопки. Однако всякий раз, когда я нажимаю кнопку, перспектива отладки eclipse возникает с ошибкой "источник не найден". Это функция, которую я использую для изменения активности

public void toManager(){
    Intent i = new Intent(getApplicationContext(), DegreeActivity.class);
    startActivity(i);
}

В моем XML файле кнопка имеет прослушиватель onClick. Это xml

<Button
    android:id="@+id/btn_toDegree"
    android:text="@string/btn_toDegree"
    android:textSize="13pt"
    android:layout_centerVertical="true"
    android:gravity="center"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_marginLeft="15dip"
    android:layout_marginRight="15dip"
    android:onClick="toManager"  <!-- This line -->
    />  

Если я toManager() функцию onCreate() блоке onCreate() первого действия, она переключается на следующее действие без ошибок. Однако, когда я пытаюсь переключиться с помощью кнопки, она не работает.

Теги:
android-button

2 ответа

7
Лучший ответ

Обработчик кликов должен выглядеть так:

public void toManager(View view) {
    Intent i = new Intent(getApplicationContext(), DegreeActivity.class);
    startActivity(i);
}

Из документации Button:

Теперь, когда пользователь нажимает кнопку, система Android вызывает метод selfDestruct(View). Чтобы это сработало, метод должен быть общедоступным и принимать в качестве единственного параметра View.

  • 0
    А ну понятно! Благодарю.
  • 0
    Вы можете просто проигнорировать это, но подпись обработчика должна быть public void methodName(View) . Это потому, что Android использует отражение, чтобы найти обработчик, и он может найти ваш метод, потому что у него неправильная подпись.
1

Ответ Pixie правильный.

Более того, Android 1.5 или более ранние версии не могут использовать эту функцию в соответствии с этим вопросом. Событие clickbutton для Android в xml

Ещё вопросы

Сообщество Overcoder
Наверх
Меню