2

Как начать новую работу с помощью Intent из PagerAdapter calss? Вот как выглядит класс ViewPagerAdapter.Начать новую активность от PagerAdapter

public class ViewPagerAdapter extends PagerAdapter 

Это, как я пытаюсь начать новую деятельность в методе OnClickListner в ViewPagerAdapter

@Override 
     public void onClick(View v) { 
      // Page is clicked 
      NewsItem item = ViewPagerAdapter.this.newsItems.get(position); 
      Log.w("TAP ON NEWS ITEM ", item.getTitle()); 

      // start ImageViewer Activity 
      Intent readMore = new Intent(getActivity(), ReadMoreActivity.class); 

      startActivity(readMore); 

     } 
    }); 
+0

Ваш ViewPagerAdapter находится вне какая-либо деятельность или внутренняя деятельность –

+0

, если вы получаете сбой при стрельбе по замыслу; прочитайте журнал. Возможно, вам будет предложено установить новый флаг задачи, который будет выглядеть как 'readMore.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK)' –

+0

@PankajNimgade. Это отдельный класс. Я передаю адаптер массива из нескольких действий для заполнения этого ViewPagerAdapter – sajaz

ответ

2

getActivity() и startActivity метод не доступен в PagerAdapter. поэтому используйте v.getContext() для подготовки Намерения и вызова startActivity метода:

Intent readMore = new Intent(v.getContext(), ReadMoreActivity.class); 
v.getContext().startActivity(readMore); 
+1

Большое спасибо за руководство. Я перехожу от разработки iOS к Android. Это мои новички. Я все еще борюсь за эти различия в sdk и синтаксисе – sajaz

0
public class ViewPagerAdapter extends PagerAdapter{ 
Context _context; 
public ViewPagerAdapter (Context context){ 
_context = context; 
} 
} 

и остальная часть вашего кода в вашем вопросе, и даже другой ответ будет работать :),

Смежные вопросы