Android答题app
当我们第一次安装软件打开时,进入的是导航页面,导航面采用的是Activity+fragment实现侧滑导航页的效果,而以后打开进入的是启动页面此效果采用的是SharedPreferences,实现代码如下:
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.welcome_back);//在下面判断是否是第一次安装if (!readIsInit()) {initWelcome();}if (readIsWelcome()) {Intent wItent = new Intent(WelcomeBackActivity.this, WelcomeActivity.class);startActivity(wItent);WelcomeBackActivity.this.finish();} else {new Thread(){@Overridepublic void run() {try {sleep(3000);Intent i = new Intent(WelcomeBackActivity.this,PageActivity.class);startActivity(i);WelcomeBackActivity.this.finish();} catch (InterruptedException e) {e.printStackTrace();}super.run();}}.start();}Timer timer = new Timer();}
public void jump(View view){Intent intent=new Intent(WelcomeBackActivity.this,PageActivity.class);startActivity(intent);
}private boolean readIsWelcome() {//使用SharedPreferences读取数据方法如下://同样,在读取SharedPreferences数据前要实例化出一个SharedPreferences对象SharedPreferences sharedPreferences= getSharedPreferences("isWelcome",Activity.MODE_PRIVATE);// 使用getString方法获得value,注意第2个参数是value的默认值Boolean isWelcome =sharedPreferences.getBoolean("isFirst",false);System.out.println(">>>>>>>>>>>"+isWelcome);return isWelcome;}private boolean readIsInit() {//使用SharedPreferences读取数据方法如下://同样,在读取SharedPreferences数据前要实例化出一个SharedPreferences对象SharedPreferences sharedPreferences= getSharedPreferences("isWelcome",Activity.MODE_PRIVATE);// 使用getString方法获得value,注意第2个参数是value的默认值Boolean isInit =sharedPreferences.getBoolean("isInit",false);System.out.println(">>>>>>>>>>>"+isInit);return isInit;}private void initWelcome() {//使用SharedPreferences保存数据方法如下://实例化SharedPreferences对象(第一步)SharedPreferences mySharedPreferences = getSharedPreferences("isWelcome",Activity.MODE_PRIVATE);//实例化SharedPreferences.Editor对象(第二步)SharedPreferences.Editor editor = mySharedPreferences.edit();//用put的方法保存数据editor.putBoolean("isFirst", true);editor.putBoolean("isInit",true);//提交当前数据editor.commit();}
进入之后的主界面整个布局是用LinearLayout里面加了一个TabHost(选项卡),然后再写里面的布局,图片效果如下:
具体操作代码如下:
public class PageActivity extends TabActivity implements RadioGroup.OnCheckedChangeListener {private TabHost tabHost;private RadioGroup radio_main_group;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_page);findView();}public void findView(){radio_main_group = (RadioGroup) findViewById(R.id.radio_main_group);tabHost=getTabHost();tabHost.addTab(tabHost.newTabSpec("闯关答题").setIndicator("闯关答题").setContent(new Intent(this,AdvocateActivity.class)));tabHost.addTab(tabHost.newTabSpec("设置").setIndicator("设置").setContent(new Intent(this,SetActivity.class)));tabHost.addTab(tabHost.newTabSpec("科二秘籍").setIndicator("科二秘籍").setContent(new Intent(this,Keer2Activity.class)));tabHost.addTab(tabHost.newTabSpec("科三秘籍").setIndicator("科三秘籍").setContent(new Intent(this,Kesan3Activity.class)));((RadioButton) findViewById(R.id.rb_view_pager_3)).setChecked(true);radio_main_group = (RadioGroup) findViewById(R.id.radio_main_group);radio_main_group.setOnCheckedChangeListener(this);}@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {switch (checkedId) {case R.id.rb_view_pager_1:tabHost.setCurrentTabByTag("科二秘籍");break;case R.id.rb_view_pager_3:tabHost.setCurrentTabByTag("闯关答题");break;case R.id.rb_view_pager_2:tabHost.setCurrentTabByTag("科三秘籍");break;case R.id.rb_view_pager_5:tabHost.setCurrentTabByTag("设置");break;}}
答题的主界面上面是用了ViewPager+viewpagerindicator(第三方)
下面的是用RelativeLayout布局。
点击答题页面是用activty+Fragment 上面那个是ProgressBar
我在选择答案的四个RadioButton上面都加了判断,如果选错就触发二个行为:一个是添加到错题中去,一个是触发这到题的解释
答对就什么都不触发
popupwindow点击事件
具体代码如下:
@Overridepublic void onClick(View view) {ScrollView ScrollView=new ScrollView(MainActivity.this);final GridLayout gridLayout=new GridLayout(MainActivity.this);//一行显示几个gridLayout.setColumnCount(4);gridLayout.setBackgroundColor(Color.parseColor("#fdfffd"));for (int i =1; i <=myl.size(); i++) {Button bu=new Button(MainActivity.this);bu.setText(i+"");//按钮没有被选中的颜色bu.setBackgroundColor(Color.parseColor("#f6fdf6"));bu.setTextColor(Color.BLACK);final int finalJ = i;if(viewPager.getCurrentItem()==i-1){bu.setBackgroundColor(Color.parseColor("#774997ea"));}bu.setOnClickListener( new View.OnClickListener() {@Overridepublic void onClick(View view) {//按钮被选中的颜色view.setBackgroundColor(Color.parseColor("#774997ea"));jumpViewParger(null, finalJ-1);View vn=gridLayout.getChildAt(gridindex);//把以前选中的改回去vn.setBackgroundColor(Color.parseColor("#f6fdf6"));gridindex=finalJ-1;}});gridLayout.addView(bu);}ScrollView.addView(gridLayout);PopupWindow mPopupWindow1 = new PopupWindow(ScrollView, 1200, 500, true);mPopupWindow1.setTouchable(true);mPopupWindow1.setOutsideTouchable(true);mPopupWindow1.setBackgroundDrawable(new BitmapDrawable(getResources(), (Bitmap) null));mPopupWindow1.showAsDropDown(view,0,0);}});
科二秘籍和科三秘籍采用的是webview:
具体代码如下:
public void vehicleis(View view){Intent intent=new Intent(Kesan3Activity.this, Html3Activity.class);intent.putExtra("typee","车距判断");startActivity(intent);}
//根据传来的值判断要跳那个静态的htmlif ("车距判断".equals(num1)){webView.loadUrl("file:///android_asset/XX/detail/chejupanduan_3.html");webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);webView.getSettings().setLoadWithOverviewMode(true);webView.getSettings().setUseWideViewPort(true);webView.getSettings().setDomStorageEnabled(true);setContentView(webView);wv_html_03.setTag(num1);}
在这里我写了一个客服QQ直接打开QQ和我聊天,代码如下:
String url="mqqwpa://im/chat?chat_type=wpa&uin=103******89";startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
这个页面上有下雪的效果,代码早已丢失。
Android答题app相关推荐
- Android设计开发 答题app 安卓+后台Java+数据库mysql
Android设计开发 答题app 安卓+后台Java+数据库mysql 基于安卓设计开发答题系统界面简洁大方 有用户注册,登录模块 主页,答题,选择答案,提交答案等模块 程序已经调试完成,包括前端安 ...
- Android答题计时的代码,Android答题倒计时
Android答题倒计时:讲一下我在做一个答题APP时涉及到倒计时时遇到的一个问题吧.碎片+CountDownTimer组成的一个答题,其中遇到的一个问题就是.这个题的倒计时在你手动滑动下一个题的时候 ...
- Android 答题
1.功能介绍 关键技术:SQLite,fragment,ViewFlipper,OnTouchListener (1)搜索:在搜索框中输入关键词,搜索包含该关键词的题目,并可查看题目详情. (2 ...
- 求助一个手机答题APP
求助:想用Android studio做一个手机答题APP,可以离线刷题,只有单选题,多选题,判断题,试题在一个Excel文件里面有1000多道,APP最好可以顺序做题,随机做题,模拟考试,错题集等功 ...
- android 程序 读logo,Android端APP更换logo和名称后都需要些测试哪些内容呢?
原标题:Android端APP更换logo和名称后都需要些测试哪些内容呢? 之前有人在搜狗测试粉丝群中问过APP更换logo和名称后需要怎么测试呢?小编正好经历过这样的需求,下面来系统整理一下APP更 ...
- 格式android id,android 获取APP的唯一标识applicationId的实例
使用getIdentifier()方法可以方便的获各应用包下的指定资源ID. 方式一 int indentify = getResources().getIdentifier("com.te ...
- Tensorflow Lite Android Demo App
Tensorflow Lite Android Demo App 本文仅演示如何打通Tensorflow Lite官方demo. Building in Android Studio using T ...
- android5.0以后获取应用运行状态,Android判断App前台运行还是后台运行(运行状态)...
本文通过图文并茂的方式给大家介绍android判断app状态的相关内容,具体详情如下所示: 要了解这块,首先需要明白一些概念,app,process,task 1.process就是进程,是linux ...
- android 带记忆功能的播放器源码,【全开源可二开】带后台管理面板的在线音乐播放器Android应用APP源码...
这是一款带后台管理面板的在线音乐播放器Android应用APP源码,可让您更快地构建在线和离线android音频播放器,代码全开源适合二次开发.该源码自带2个紫色和橙色主题(允许您添加更多主题),多语 ...
最新文章
- 项目常用工具类整理(五)--jar包整理
- Xcode代码提示联想功能失效,按command键点不进去类库,提示“?”
- HikariDataSource 监控_Prometheus监控告警浅析
- 温升测试总结setllom解胶剂
- 1207.1——C语言 函数
- 猪年适合学什么编程语言?
- C# 在winform中如何为按钮设置快捷键( F1)
- 初学Jmeter的摘抄学习总结----------基础知识篇
- node.js 快速入门
- 蚁群算法原理及python代码实现
- 无人机+AI人工智能可以实现哪些领域的场景应用?
- HTML基础-李南江
- 英文写作——动词过去式和现在分词
- causal snps | causal variants | tensorflow | 神经网络实战 | Data Simulation
- 对比excel 轻松学python百度云_解读《对比Excel轻松学习Python数据分析》
- mysql 异地备份脚本_MySQL异地备份脚本
- Matlab:利用Matlab软件进行GUI界面设计实现图像的基本操作
- 如何成为百万富翁 掌握六点让财富为你打工
- 中国天气网接口说明及城市编码全部 为天气开发做铺垫
- 关于Android Studio 中Android SDK的 SDK Tools 没有CMake下载项问题
热门文章
- 物联网的特点对行业的作用
- 术业有专攻,尽好本分最重要
- 加密【encrypt】和解密【decrypt】介绍
- mysql aes_decrypt_MySQL利用AES_ENCRYPT()与AES_DECRYPT()加解密的正确方法示例
- 如何彻底卸载3dmax2020_「技巧」别再直接在桌面上卸载APP了,这才是手机卸载APP的正确方式!...
- 手机qq表白代码大全可复制_网页内文字无法复制怎么办?一分钟看懂这些方法,让你随意复制...
- android spannable 设置字体颜色,安卓文本样式-Spannable的使用
- 套接字描述符的就绪条件
- java安装配置jdk环境
- 安装docker guacamole