#android
#Android
Вопрос:
Я новичок в Android и Java. Я хочу создать метод onClick, который содержит аргумент int, поэтому это моя попытка:
public void randomClick(final int randomIndex)
{
private OnClickListener top_listener = new OnClickListener() {
public void onClick(View v) {
Intent top = new Intent(Main.this, ProjectDetail.class);
top.putExtra("spendino.de.ProjectDetail.position", randomIndex);
startActivity(top);
}
};
}
но он все еще содержит ошибку, кто-нибудь может исправить это для меня?
Позже я хочу установить метод в ImageView, он будет выглядеть более или менее так image1.randomClick(randomIndex1);
.
Ответ №1:
В настоящее время в вашей реализации OnClickListener
не ограничен каким-либо представлением, поэтому он не будет запущен.
Вы должны создать свой собственный (может быть внутренним, но не анонимным) класс, реализующий OnClickListener
интерфейс:
public class RandomClickListener implements View.OnClickListener
{
private final int randomIndex;
public RandomClickListener(final int randomIndex)
{
this.randomIndex = randomIndex;
}
@Override
public void onClick(View v)
{
Intent top = new Intent(Main.this, ProjectDetail.class);
top.putExtra("spendino.de.ProjectDetail.position", randomIndex);
startActivity(top);
}
}
[...]
image1.setOnClickListener(new RandomClickListener(randomIndex));
Таким образом, при нажатии на image1
он запустит ProjectDetail
действие с randomIndex
набором выше.
Если вы хотите явно запустить ProjectDetails
действие (без каких-либо взаимодействий с пользователем, таких как щелчок), вам вообще не нужно OnClickListener
.
Комментарии:
1. Я рад, что вы сделали это! приятного кодирования дальше 🙂
2. Именно то, что мне было нужно для приложения, которое я пишу. Спасибо!