Как вызвать метод с параметром View на Android Studio
Я хочу вызвать этот метод
public void openButton(View view) {
Intent intent = new Intent(this, MainActivity.class);
this.startActivity(intent);
}
от простого метода, как это
public void simple(){
openButton();
}
но я не могу этого сделать, потому что openButton нуждается в одном представлении параметров. Как?
3 ответов
Ну, с кодом, который вы предоставили, вы обычно используете какой-то onCickListener.
откройте XML-файл и добавьте android:onClick="openButton" к кнопке, которую вы хотите вызвать этот метод. Так что ваш XML для кнопки будет выглядеть примерно так:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me!"
. . .
android:onClick="openButton" />
это автоматически вызовет этот метод и передаст представление.
другой вариант, как BatScream упоминается в комментариях, это просто пройти в null, поскольку вы все равно не используете представление. Однако это это плохая практика - она будет работать на этот раз, но в целом, вы должны следовать системе, которую использует Android. Просто иди с onClick в XML.
Если вам нужно использовать simple как есть, сделайте это так:
public void simple(){
openButton(null);
}
вы должны быть в состоянии сделать
button.performClick();
предполагая, что openButton() - Это метод, назначенный buttons onClick. Значит, где-то в вашем xml у вас, вероятно, есть Button С android:onClick="openButton". Тогда, если у вас есть это Button создан экземпляр и назначен переменной button, назвав View ' s performClick() метод назвали бы openButton()
простой. Просто передайте представление в аргументах.
Способ 1: если вы звоните openButton() метод из файла макета, затем просто вызовите метод следующим образом, применив атрибут onClick
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go to next screen"
. . .
android:onClick="openButton" />
Способ 2: если вы пытаетесь вызвать его из onclick кнопки, установив OnClickListener, то просто передайте представление, которое вы получаете внутри OnClickListener ' s onClick(View view) метод следующим образом:
button.setOnClickListener(new OnClickListener(){
@override
public void onClick(View view)
{
openButton(view);
}
});