当我们第一次安装软件打开时,进入的是导航页面,导航面采用的是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相关推荐

  1. Android设计开发 答题app 安卓+后台Java+数据库mysql

    Android设计开发 答题app 安卓+后台Java+数据库mysql 基于安卓设计开发答题系统界面简洁大方 有用户注册,登录模块 主页,答题,选择答案,提交答案等模块 程序已经调试完成,包括前端安 ...

  2. Android答题计时的代码,Android答题倒计时

    Android答题倒计时:讲一下我在做一个答题APP时涉及到倒计时时遇到的一个问题吧.碎片+CountDownTimer组成的一个答题,其中遇到的一个问题就是.这个题的倒计时在你手动滑动下一个题的时候 ...

  3. Android 答题

    1.功能介绍 关键技术:SQLite,fragment,ViewFlipper,OnTouchListener (1)搜索:在搜索框中输入关键词,搜索包含该关键词的题目,并可查看题目详情.    (2 ...

  4. 求助一个手机答题APP

    求助:想用Android studio做一个手机答题APP,可以离线刷题,只有单选题,多选题,判断题,试题在一个Excel文件里面有1000多道,APP最好可以顺序做题,随机做题,模拟考试,错题集等功 ...

  5. android 程序 读logo,Android端APP更换logo和名称后都需要些测试哪些内容呢?

    原标题:Android端APP更换logo和名称后都需要些测试哪些内容呢? 之前有人在搜狗测试粉丝群中问过APP更换logo和名称后需要怎么测试呢?小编正好经历过这样的需求,下面来系统整理一下APP更 ...

  6. 格式android id,android 获取APP的唯一标识applicationId的实例

    使用getIdentifier()方法可以方便的获各应用包下的指定资源ID. 方式一 int indentify = getResources().getIdentifier("com.te ...

  7. Tensorflow Lite Android Demo App

    Tensorflow Lite Android Demo App 本文仅演示如何打通Tensorflow Lite官方demo.  Building in Android Studio using T ...

  8. android5.0以后获取应用运行状态,Android判断App前台运行还是后台运行(运行状态)...

    本文通过图文并茂的方式给大家介绍android判断app状态的相关内容,具体详情如下所示: 要了解这块,首先需要明白一些概念,app,process,task 1.process就是进程,是linux ...

  9. android 带记忆功能的播放器源码,【全开源可二开】带后台管理面板的在线音乐播放器Android应用APP源码...

    这是一款带后台管理面板的在线音乐播放器Android应用APP源码,可让您更快地构建在线和离线android音频播放器,代码全开源适合二次开发.该源码自带2个紫色和橙色主题(允许您添加更多主题),多语 ...

最新文章

  1. 项目常用工具类整理(五)--jar包整理
  2. Xcode代码提示联想功能失效,按command键点不进去类库,提示“?”
  3. HikariDataSource 监控_Prometheus监控告警浅析
  4. 温升测试总结setllom解胶剂
  5. 1207.1——C语言 函数
  6. 猪年适合学什么编程语言?
  7. C# 在winform中如何为按钮设置快捷键( F1)
  8. 初学Jmeter的摘抄学习总结----------基础知识篇
  9. node.js 快速入门
  10. 蚁群算法原理及python代码实现
  11. 无人机+AI人工智能可以实现哪些领域的场景应用?
  12. HTML基础-李南江
  13. 英文写作——动词过去式和现在分词
  14. causal snps | causal variants | tensorflow | 神经网络实战 | Data Simulation
  15. 对比excel 轻松学python百度云_解读《对比Excel轻松学习Python数据分析》
  16. mysql 异地备份脚本_MySQL异地备份脚本
  17. Matlab:利用Matlab软件进行GUI界面设计实现图像的基本操作
  18. 如何成为百万富翁 掌握六点让财富为你打工
  19. 中国天气网接口说明及城市编码全部 为天气开发做铺垫
  20. 关于Android Studio 中Android SDK的 SDK Tools 没有CMake下载项问题

热门文章

  1. 物联网的特点对行业的作用
  2. 术业有专攻,尽好本分最重要
  3. 加密【encrypt】和解密【decrypt】介绍
  4. mysql aes_decrypt_MySQL利用AES_ENCRYPT()与AES_DECRYPT()加解密的正确方法示例
  5. 如何彻底卸载3dmax2020_「技巧」别再直接在桌面上卸载APP了,这才是手机卸载APP的正确方式!...
  6. 手机qq表白代码大全可复制_网页内文字无法复制怎么办?一分钟看懂这些方法,让你随意复制...
  7. android spannable 设置字体颜色,安卓文本样式-Spannable的使用
  8. 套接字描述符的就绪条件
  9. java安装配置jdk环境
  10. 安装docker guacamole