Использование намерения в списке onItemClick

#android #listview #click #android-intent

#Android #просмотр списка #нажмите #android-намерение

Вопрос:

Я выполняю свое второе действие (основное) вот так:

 Login -> Main -> Vforum
  

Мне удалось перейти к основному действию, используя подобное намерение в операции входа:

 Intent logMeIn = new Intent(this,Main.class);
startActivity(logMeIn);
  

Это работает нормально. Моя проблема прямо сейчас заключается в переходе с Main на Vforum.

 projectList.setOnItemClickListener(new OnItemClickListener()
{
    public void onItemClick(AdapterView<?> parent, View view, int position, long id)
    {
        Intent launchVforum = new Intent(this, Vforum.class);
        startActivity(launchVforum);
    }
});
  

projectList является ListView . Eclipse говорит:

 The constructor Intent(new AdapterView.OnItemClickListener(){}, Class<Vforum>) is undefined
  

и я не знаю, что поместить, где this это исправить. Я просто хочу перейти к своему третьему действию (Vforum).

Ответ №1:

Да. Однажды у меня была похожая проблема. Мое решение состояло в том, чтобы сделать следующее (используя ваш пример):

-В вашем основном действии укажите частный контекст следующим образом:

 private Context mCtx;
  

-В вашем основном методе activity onCreate() поместите эту строку куда-нибудь:

 mCtx = this;
  

-При создании намерения используйте mCtx вместо этого:

 Intent launchVforum = new Intent(mCtx, Vforum.class);
  

Комментарии:

1. Чтобы объяснить, проблема в том, что первым параметром должен быть контекстный объект. Вы также можете попробовать Main.this, если вы не хотите сохранять контекст

Ответ №2:

 projectList.setOnItemClickListener(new OnItemClickListener()
{
    public void onItemClick(AdapterView<?> parent, View view, int position, long id)
    {
        Intent launchVforum = new Intent(YourActivity.this, Vforum.class);
        startActivity(launchVforum);
    }
});