关于在内部类中启动一个Android Intent的疑惑
来源:互联网 发布:数组和指针的区别 编辑:程序博客网 时间:2024/04/30 10:31
在网上看到的所有android例子都是把adapter和listener写在一起,多是内部类的实现方式。我今天想把他们分离开。即adapter和listener写在一个class里面,adapter和listener在同一个class中以内部类形式存在。但是adapter在相关操作上正常,但是listener缺出现启动一个activity时null指针问题。代码如下
在一个JshopActivityIndex中我使用了viewpager控件
我先把viewpager的相关adapter和listener写在了JshopViewpagerAdapter
package com.jshop.android.widget;import java.util.ArrayList;import com.jshop.android.index.JshopActivityIndex;import com.jshop.android.index.JshopMIndex;import com.jshop.android.index.R;import com.jshop.android.index.WelcomeAct;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.View;import android.widget.ImageView;public class JshopViewpagerAdapter extends Activity {public class JshopActivityIndexViewpagerAdapter extends PagerAdapter {private ArrayList<View> pageViews;public JshopActivityIndexViewpagerAdapter() {super();// TODO Auto-generated constructor stub}/** * 对左右滚动空间进行适配器定义和操作 */public JshopActivityIndexViewpagerAdapter(ArrayList<View> pv) {this.pageViews = pv;}@Overridepublic int getCount() {return pageViews.size();}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}@Overridepublic void destroyItem(View container, int position, Object object) {((ViewPager) container).removeView(pageViews.get(position));}@Overridepublic void finishUpdate(View container) {// TODO Auto-generated method stub}@Overridepublic Object instantiateItem(View container, int position) {// TODO Auto-generated method stub((ViewPager) container).addView(pageViews.get(position));return pageViews.get(position);}@Overridepublic void setPrimaryItem(View container, int position, Object object) {// TODO Auto-generated method stubsuper.setPrimaryItem(container, position, object);}@Overridepublic void startUpdate(View container) {// TODO Auto-generated method stubsuper.startUpdate(container);}} // 指引页面更改事件监听器 public class JshopActivityIndexViewpagerPageChangeListener implements OnPageChangeListener { private Context context; private ImageView[] imageViews; public JshopActivityIndexViewpagerPageChangeListener(Context ctx,ImageView[] v){ this.context=ctx; this.imageViews=v; } @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageSelected(int arg0) { for (int i = 0; i < imageViews.length; i++) { imageViews[arg0].setBackgroundResource(R.drawable.page_indicator_focused); if (arg0 != i) { imageViews[i].setBackgroundResource(R.drawable.page_indicator); } } if(arg0==5){ Intent intent = new Intent(context,JshopMIndex.class);startActivity(intent); } } }}当程序执行到
if(arg0==5){ Intent intent = new Intent(context,JshopMIndex.class);startActivity(intent); }
启动另一个activity时候就会报错。
我是这样调用这个内部类的
viewPager.setAdapter(new JshopViewpagerAdapter().new JshopActivityIndexViewpagerAdapter(pageViews));viewPager.setOnPageChangeListener(new JshopViewpagerAdapter().new JshopActivityIndexViewpagerPageChangeListener(JshopActivityIndex.this,imageViews));
我也在网上查到了类似问题地址是
http://stackoverflow.com/questions/6140157/startactivityforresult-null-pointer-exception-context
我心里想把adapter和listener分离,可以让activity的代码不用那么长,可是目前只能做到分离adapter。希望有高人指点下
- 关于在内部类中启动一个Android Intent的疑惑
- 关于在内部类中访问一个方法中的局部变量
- 关于android中obtainMessage()的小疑惑
- 关于在内部类中类名.this的使用
- 一个关于tomcat的疑惑??
- 关于volatile的一个疑惑
- 一个关于kylin的疑惑
- Android中intent启动Activity中intent.setFlags()的作用
- Android中intent启动Activity中intent.setFlags()的作用
- Android中intent启动Activity中intent.setFlags()的作用
- Android中intent启动Activity中intent.setFlags()的作用
- Android中intent启动Activity中intent.setFlags()的作用
- Android关于Intent的思考:如何更好的启动一个Activity
- Android中常用的Intent启动服务
- 在内部类中生成对外部类的引用
- 关于Android的api疑惑
- android中,如何用intent去启动另外一个activity
- 关于隐性intent的一些疑惑与解释
- 如何查看端口是否被占用,及被哪个程序占用
- 创业公司: 首席产品设计师的最低要求
- iPhone、iPad开发之图片资源管理
- style.left 与 style.top 在 IE和FireFox的兼容问题
- Ubuntu12.04 安装与卸载jdk1.6
- 关于在内部类中启动一个Android Intent的疑惑
- hdu1698 Just a Hook
- cocoa下的扩展日志输出例程
- php100视频之Ajax+PHP快速上手及应用(一)【第48讲】
- 用Autohotkey实现分屏
- linux内核下载地址
- 使用进度条显示后台执行进度的方法
- 容器与继承
- 多个Filter 的执行顺序