Щелкните метод прослушивания с передачей аргумента в Android

#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. Именно то, что мне было нужно для приложения, которое я пишу. Спасибо!