Я хочу получить такое значение от анонимного класса, но оно всегда ничего не показывает о test0, может ли кто-нибудь мне с этим помочь?
final String[] test = new String[1];
txt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
test[0] = "abc";
}
});
String test0 = test[0];
Toast.makeText(this, test0, Toast.LENGTH_SHORT).show();




Значение для test[0] будет доступно только после щелчка по View. Ваш код этого не ждет. Переместите Toast внутрь ClickListener, и он заработает.
Вы должны поместить Toast внутрь setOnClickListener(), иначе он не увидит изменений на test[].
final String[] test = new String[1];
txt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
test[0] = "abc";
Toast.makeText(this, test[0], Toast.LENGTH_SHORT).show();
}
});
Вы должны изменить свой слушатель, чтобы включить показ всплывающего сообщения внутри метода onClick(), потому что вы хотите, чтобы это значение отображалось при "щелчке". В противном случае значение test0 не обновляется вне этого метода:
final String[] test = new String[1]; txt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
test[0] = "abc";
String test0 = test[0];
Toast.makeText(this, test0, Toast.LENGTH_SHORT).show();
}
});
Сделайте это изменение
final String[] test = new String[1];
txt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
test[0] = "abc";
Toast.makeText(this, test[0], Toast.LENGTH_SHORT).show();
}
});
Значение test [0] обновляется только после срабатывания события щелчка. Поэтому вам нужно поместить свой код в метод onClick.
Вы проверили ответы?