`

关于在内部类中启动一个Android Intent的疑惑

阅读更多

在网上看到的所有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;
		}

		@Override
		public int getCount() {
			return pageViews.size();
		}

		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			return arg0 == arg1;
		}

		@Override
		public void destroyItem(View container, int position, Object object) {
			((ViewPager) container).removeView(pageViews.get(position));
		}

		@Override
		public void finishUpdate(View container) {
			// TODO Auto-generated method stub
		}

		@Override
		public Object instantiateItem(View container, int position) {
			// TODO Auto-generated method stub
			((ViewPager) container).addView(pageViews.get(position));
			return pageViews.get(position);
		}

		@Override
		public void setPrimaryItem(View container, int position, Object object) {
			// TODO Auto-generated method stub
			super.setPrimaryItem(container, position, object);
		}

		@Override
		public void startUpdate(View container) {
			// TODO Auto-generated method stub
			super.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。希望有高人指点下

 

分享到:
评论

相关推荐

    日本动漫DL

    Kotlin也是Google官方推荐的Android开发语言,因此,"日本动漫DL"项目很可能是一个Android应用,其代码基础是用Kotlin编写的。 在【压缩包子文件的文件名称列表】中,我们看到"AnimeDL-dev"这个名字,这可能代表的...

    基于Python的Django-vue的摄影交流平台源码.zip

    基于Python的Django-vue的摄影交流平台 系统选用B/S模式,应用Django框架, MySQL为后台数据库。

    数控加工工艺与编程--习题.ppt

    数控加工工艺与编程--习题.ppt

    基于layui框架开发的asp.net项目.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料,勿用于商业用途。质量优质,放心下载使用。

    基于 java开发的资源管理器.zip

    这是一个基于 Java 开发的资源管理器,主要功能包括文件和目录的操作、资源的高效管理以及用户界面交互。以下是其核心功能介绍: 1. **文件和目录操作**:支持查看、创建、删除、重命名文件和目录。用户可以通过图形界面(如 JTree 和 JList)浏览文件系统结构。 2. **资源管理**:通过 Java 的 `File` 类和 `try-with-resources` 语句,实现资源的自动分配和释放,确保文件流、数据库连接等资源在使用后正确关闭。 3. **用户界面交互**:结合 Swing 库,提供直观的图形用户界面,支持文件选择、操作监听以及界面实时更新。 4. **跨平台支持**:支持 Windows、Linux 和 macOS 系统,通过调用系统命令(如 `explorer.exe`、`xdg-open` 和 `open`)打开本地资源管理器。 5. **异常处理**:在文件操作和资源管理中,提供完善的异常处理机制,确保程序稳定运行。 该资源管理器通过 Java 标准 I/O 类库和图形界面组件,为用户提供了一个高效、易用的文件和资源管理工具。

    基于Matlab的LSTM与BiLSTM一维信号二分类(含多分类)源程序:数据替换简易教程与详细注释,构建训练测试流程,准确率评估与混淆矩阵绘制 ,Matlab教程:LSTM与BiLSTM对一维信号二

    基于Matlab的LSTM与BiLSTM一维信号二分类(含多分类)源程序:数据替换简易教程与详细注释,构建训练测试流程,准确率评估与混淆矩阵绘制。,Matlab教程:LSTM与BiLSTM对一维信号二分类及多分类处理源程序(含数据) - 从数据加载到混淆矩阵绘制全流程详解,Matlab使用LSTM或BiLSTM对一维信号(语音信号、心电信号等)进行二分类源程序。 也可以改成多分类。 包含数据和代码,数据可以直接替为自己的数据。 如果用BiLSTM,程序中只需要把lstmlayer改为bilstmlayer即为BiLSTM网络,其他地方不需要任何改动。 注释详细,包教会和运行,后续有问题会积极解答。 工作如下: 1、加载数据集,一共为400个样本(正常200异常200);选80%做为训练集(共320样本,160正常160异常),剩余20%作为测试集(共80样本,40正常40异常)。 2、构建LSTM网络,层数为两层。 3、构建优化器options。 4、训练。 5、测试,计算准确率,绘制混淆矩阵。 注:考虑到Matlab用LSTM分类一维信号的教程较少,此程序只用做帮助学习如何调整输入数

    【weixin9170】健身达人微信小程序的设计与实现ssm.zip

    技术选型 【后端】:Java 【框架】:springboot/ssm 【前端】:小程序 【JDK版本】:JDK1.8 【服务器】:tomcat7+ 【数据库】:mysql 5.7+ 资源包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

    【weixin9177】高校教师成果管理小程序的设计与实现springboot.zip

    技术选型 【后端】:Java 【框架】:springboot/ssm 【前端】:小程序 【JDK版本】:JDK1.8 【服务器】:tomcat7+ 【数据库】:mysql 5.7+ 资源包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

    【weixin9247】微信小程序的高校党费收缴系统ssm.zip

    技术选型 【后端】:Java 【框架】:springboot/ssm 【前端】:小程序 【JDK版本】:JDK1.8 【服务器】:tomcat7+ 【数据库】:mysql 5.7+ 压缩包包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

    python-5.二进制最右边的1-底线.py

    python-5.二进制最右边的1——底线.py

    单片机设计 电子万年历设计与制作的详细项目实例(含完整的硬件电路设计,程序设计、GUI设计和代码详解)

    内容概要:本文档详细介绍了基于单片机设计的一款电子万年历,包含硬件电路设计、软件编码实现、GUI界面开发及相关调试和优化细节。文中全面探讨了如何集成实时时钟(RTC)模块、温湿度传感器及按键输入,实现精准时间管理,并通过LCD显示模块展现多样化信息。针对实际项目中的挑战,如低功耗设计、输入去抖动处理及多任务协调进行了详尽分析。 适合人群:面向有一定电子和编程基础知识的技术人员或爱好者,尤其是希望深入了解单片机应用和嵌入式系统的人群。 使用场景及目标:①了解如何运用单片机构建具有时间管理和环境感知功能的小型设备;②学习模块化设计方案以提升系统扩展能力和维护便捷性;③掌握嵌入式软件开发方法和技术手段以实现高效稳定的多任务并发执行。 其他说明:本文不仅涵盖了完整的理论讲解和技术指导,而且提供了丰富的示例代码,便于读者实际操作练习。无论是作为教学资料还是项目参考资料,均极具价值。

    openssh-9.9p2 for el7 x86-64

    包含以下安装包: openssh-server-9.9p2-1.el7.x86_64.rpm openssh-debuginfo-9.9p2-1.el7.x86_64.rpm openssh-clients-9.9p2-1.el7.x86_64.rpm openssh-9.9p2-1.el7.x86_64.rpm

    软工大作业,日志兼日程管理小程序。java swing+mysql.zip(课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料,勿用于商业用途。质量优质,放心下载使用。

    电力电子技术研究:交交变频电路与单相三相交流调压电路的Matlab模型图及波形分析,电力电子技术仿真研究:交交变频电路与单相三相交流调压电路的Matlab模型波形分析图集,一键出图助力研究 ,电力电子

    电力电子技术研究:交交变频电路与单相三相交流调压电路的Matlab模型图及波形分析,电力电子技术仿真研究:交交变频电路与单相三相交流调压电路的Matlab模型波形分析图集,一键出图助力研究。,电力电子技术,交交变频电路matlab模型图,单相交流调压电路,三相交流调压电路,交交变频电路,数据已经调试好,可以直接出波形图,可用于电力电子的研究,想要点击加好友加好友我哈~ ,电力电子技术; 交交变频电路; MATLAB模型图; 单相交流调压电路; 三相交流调压电路; 数据调试; 波形图; 研究用途,电力电子研究:交交变频电路与交流调压系统Matlab模型分析

    三菱口罩机程序信捷EtherCAT模板:高度模块化设计,PLC控制伺服系统,信捷触摸屏操作,功能丰富可扩展,适用于多种PLC架构的口罩机自动化控制程序 ,三菱口罩机程序信捷EtherCAT模板:高度模

    三菱口罩机程序信捷EtherCAT模板:高度模块化设计,PLC控制伺服系统,信捷触摸屏操作,功能丰富可扩展,适用于多种PLC架构的口罩机自动化控制程序。,三菱口罩机程序信捷EtherCAT模板:高度模块化设计,多轴拓展,C语言+梯形图架构,适用于多种PLC系统,#Mitsubishi 三菱口罩机程序信捷ethercat模板 1 程序高度模块化, 2 plc采用xdh-60t4 带ethercat总线控制伺服 3 触摸屏采用信捷屏 4 程序分功能编写,有以下部分 a 初始化 b 手动 c 故障复位 d 自动 等等功能。 可轻易拓展十几二十多个轴,,plc是目前性价比最高的方案,正弦曲线加减速。 程序采用C语言 + 梯形图架构。 玩转信捷系统。 可运用于三菱,西门子,欧姆龙等PLC架构 ,关键词:Mitsubishi; 口罩机程序; 信捷ethercat模板; 高度模块化; plc; xdh-60t4; ethercat总线控制; 触摸屏; C语言; 梯形图架构; 轻松拓展轴数; 正弦曲线加减速; 多PLC架构兼容。,三菱口罩机:模块化EtherC

    第三天solidity入门.md

    第三天solidity入门

    单片机设计 基于Mini51B的简易数字示波器的详细项目实例(含完整的硬件电路设计,程序设计、GUI设计和代码详解)

    内容概要:文章详细介绍了一个基于Mini51B单片机的简易数字示波器项目,从背景、目标、面临的挑战到硬件和软件设计等多个方面展开叙述。该项目旨在通过集成ADC(模数转换器)、LCD显示、按键输入等模块,实现实时信号采集、数字化处理和波形展示功能。文档深入介绍了各个模块的具体实现细节及其工作原理,展示了如何通过硬件电路设计(如ADC模块、LCD显示)和软件设计(如信号处理、用户输入控制)达到项目的既定目标,最终形成一款性价比高且易于操作的示波器工具,特别强调了其实现的实时波形显示、高精度采样及用户友好的交互界面。此外,还讨论了未来的改进建议和发展方向。 适合人群:对于希望深入了解单片机及其应用的学生、电子工程师以及业余爱好者来说,这篇文档不仅提供了详细的理论和技术讲解,还有助于启发读者进行类似的项目开发,尤其是从事低频至中频范围内信号测试与分析工作的人员。 使用场景及目标:这个项目适用于多个应用场景,其中包括但不限于教育机构作为课堂教学设备,帮助学生理解和掌握相关知识;研究和实验室环境内用作日常测试仪器,满足工程师在原型设计阶段对电路调试的需求;以及为个人创客提供一款经济实惠的选择来进行各种电子制作尝试。总体而言,它致力于提供一个简单可靠的工具,让使用者能够更直观高效地分析电子电路中的电信号特征,并据此做出相应优化。 其他说明:为了保障该设备的性能表现,文中指出了需要注意事项,涵盖硬件选型兼容性、功耗控制、显示刷新率优化、保护机制完善等方面。同时也提出了对未来产品的改进设想,包括但不限于提高带宽和采样率、增强显示与信号处理功能、引入远程访问和大数据分析功能等。

    单片机设计 多功能电子医药盒设计的详细项目实例(含完整的硬件电路设计,程序设计、GUI设计和代码详解)

    内容概要:本文档详细介绍了多功能电子医药盒的设计与实现,涵盖硬件电路设计、程序设计、GUI设计和详细的代码实现。通过该项目旨在提高患者的用药依从性,尤其关注老年人和慢性病患者的需求。系统集成了定时提醒、精准药物管理、实时数据同步等功能,硬件方面选择了高效的电源管理、可靠的药品管理模块和数据通信模块。项目通过触摸屏和语音等交互方式提供了直观的用户界面,确保了不同用户群体的便利操作,并采用了严格的加密措施保障用户隐私。 适合人群:具备一定的编程基础和技术背景的研发人员、电子产品设计师,尤其是从事智能医疗设备开发的技术人员。 使用场景及目标:① 提供一个详细的参考案例,适用于希望开发类似智能医疗设备的团队和个人开发者;② 帮助理解智能电子医药盒的工作原理及其软硬件设计的关键点;③ 指导具体实现步骤,从硬件组装、电路设计一直到完整的软件开发,包括Python编程、C/C++代码和前端图形界面设计。 阅读建议:文档全面覆盖了硬件与软件两大部分,既包含了理论性的架构设计讨论又展示了实际编程案例,建议读者先浏览总体架构及设计思路,随后逐步深入了解具体的实现细节,尤其是感兴趣的功能模块部分。在动手实践中,可根据自己的项目情况进行适当的调整和扩展。此外,由于涉及到多学科知识交叉融合的内容较多,建议具备相关基础知识以更好理解。

    【weixin9077】停车场微信小程序的设计与实现+ssm.zip

    技术选型 【后端】:Java 【框架】:springboot/ssm 【前端】:小程序 【JDK版本】:JDK1.8 【服务器】:tomcat7+ 【数据库】:mysql 5.7+ 压缩包包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

    mmtls 短连接抓包 分析

    使用wireshark 抓的 微信 mmtls 短连接的包,可以用来分析 mmtls 短连接组包方式

Global site tag (gtag.js) - Google Analytics