Я хочу изменить текущую активность на другую деятельность в 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()
первого действия, она переключается на следующее действие без ошибок. Однако, когда я пытаюсь переключиться с помощью кнопки, она не работает.
Обработчик кликов должен выглядеть так:
public void toManager(View view) {
Intent i = new Intent(getApplicationContext(), DegreeActivity.class);
startActivity(i);
}
Из документации Button:
Теперь, когда пользователь нажимает кнопку, система Android вызывает метод
selfDestruct(View)
. Чтобы это сработало, метод должен быть общедоступным и принимать в качестве единственного параметраView
.
Ответ Pixie правильный.
Более того, Android 1.5 или более ранние версии не могут использовать эту функцию в соответствии с этим вопросом. Событие clickbutton для Android в xml
public void methodName(View)
. Это потому, что Android использует отражение, чтобы найти обработчик, и он может найти ваш метод, потому что у него неправильная подпись.