1.解决了ScrollView滑动冲突问题。

2.设置好了“查看详解”与“题目编号”的部分。

3.完成了app启动图片的设置,并在启动的过程中开辟新的线程连接服务器并开启监听数据。

别忘了注册启动Activity,并设置为app启动项。

  参考:http://www.iteye.com/problems/62343

       http://www.cnblogs.com/mybkn/archive/2012/07/18/2597347.html

4.mCsv.setEnabled(true);设置是否可以触控,mCsv.setClickable(true);设置是否可以点击

5.在线程中执行Toast操作,报 Can't create handler inside thread that has not called Looper.prepare()这个运行时异常。

是由于Toast依赖一个Handler来消息队列,非主线程需要为Toast准备Looper。

参考:http://blog.csdn.net/neo_86/article/details/25830443

6.

/**
* 连接服务器
*/
public void connectServer() {
new Thread(new Runnable() {

@Override
public void run() {
Looper.prepare();

// TODO Auto-generated method stub
NetworkService.getInstance().onInit(mContext);
NetworkService.getInstance().setupConnection();
// 判断连接状态
if (NetworkService.getInstance().getIsConnected()) {

// Toast.makeText(mContext, "连接成功", Toast.LENGTH_LONG).show();

} else {
Toast.makeText(mContext, "服务器连接失败", Toast.LENGTH_LONG).show();

}
Looper.loop();
}
}).start();

}

7.

1如何将字串 String 转换成整数 int?

A. 有两个方法:

1). int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);

2). int i = Integer.valueOf(my_str).intValue();

注: 字串转成 Double, Float, Long 的方法大同小异.

2 如何将整数 int 转换成字串 String ?
A. 有叁种方法:

1.) String s = String.valueOf(i);

2.) String s = Integer.toString(i);

3.) String s = "" + i;

注: Double, Float, Long 转成字串的方法大同小异.

参考:http://blog.sina.com.cn/s/blog_4f9d6b1001000bfo.html

8. String->char->int

/**
* 当选择答案错误时,显示并改变正确选项的颜色
*/
private void setTrueOptionColor() {
// 显示并改变正确选项的颜色
String getTureId = QuestionList.get(QuestionsIndex).getAnswer();
char temp = getTureId.charAt(0);
((RadioButton) radioGroup.getChildAt(temp - 1 - 65))
.setTextColor(getResources().getColor(R.color.exam_true_option));
}

9.在代码里写入一个输入输出流即可。
具体实现如下:
BufferedReader bf= new BufferedReader(new FileReader("file"));
注:其中file替换为文件路径;
bf.readLine();
注:即可实现一行一行读取txt文档。

10.动态插入数据到数据库,免得手动输入。

  1. package com.magicalign.ortholink.database;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.sql.Connection;
  8. import java.sql.PreparedStatement;
  9. import java.sql.SQLException;
  10. import java.sql.Statement;
  11.  
  12. /**
  13. * 插入数据到数据库
  14. *
  15. * @CopyRight: MagicAlign.com
  16. * @author Hanshenquan
  17. * @time 2016年3月15日20:09:43
  18. */
  19. public class WriteToDatabase {
  20.  
  21. private static String[] mQuestion;
  22. private static String[] mAnswera;
  23. private static String[] mAnswerb;
  24. private static String[] mAnswerc;
  25. private static String[] mAnswerd;
  26. private static String[] mAnswere;
  27. private static String[] mAnswerf;
  28. private static String[] mExamExplain;
  29. private static String[] mTrueAnswer;
  30. // 数据库中数据个数,因为我的数据库里有150条记录
  31. private static int mDataNumber = 150;
  32.  
  33. public static void main(String[] args) throws IOException, SQLException {
  34. // TODO Auto-generated method stub
  35.  
  36. WriteToDatabase.initStringArray();
  37. WriteToDatabase.insertIntoDatabase();
  38.  
  39. }
  40.  
  41. /**
  42. * 写每一个字段数据
  43. *
  44. * @param array
  45. * @param path
  46. * @throws IOException
  47. */
  48.  
  49. private static void writeQuestion(String[] str, String path)
  50. throws IOException {
  51. BufferedReader bf = new BufferedReader(new FileReader(path));
  52.  
  53. str = new String[mDataNumber];
  54.  
  55. for (int i = 0; i < mDataNumber; i++) {
  56. str[i] = bf.readLine().trim();
  57. }
  58. bf.close();
  59. for (int i = 0; i < mDataNumber; i++) {
  60. System.out.println(str[i]);
  61. }
  62. }
  63.  
  64. /**
  65. * 得到字符串数组
  66. *
  67. * @throws IOException
  68. *
  69. */
  70. private static void initStringArray() throws IOException {
  71.  
  72. writeQuestion(mQuestion, "D://data/question.txt");
  73. writeQuestion(mAnswera, "D://data/Answera.txt");
  74. writeQuestion(mAnswerb, "D://data/Answerb.txt");
  75. writeQuestion(mAnswerc, "D://data/Answerc.txt");
  76. writeQuestion(mAnswerd, "D://data/Answerd.txt");
  77. writeQuestion(mAnswere, "D://data/Answere.txt");
  78. writeQuestion(mExamExplain, "D://data/ExamExplain.txt");
  79. writeQuestion(mTrueAnswer, "D://data/TrueAnswer.txt");
  80.  
  81. }
  82.  
  83. /**
  84. * 执行插入数据库操作
  85. *
  86. * @throws SQLException
  87. */
  88. private static void insertIntoDatabase() throws SQLException {
  89. Connection conn = DBCon.getConnect();
  90. for (int i = 0; i < mDataNumber; i++) {
  91. String sql = "insert into examination values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
  92. PreparedStatement pst = conn.prepareStatement(sql,
  93. Statement.RETURN_GENERATED_KEYS);
  94. pst.setInt(1, i + 1);
  95. pst.setInt(2, 1);
  96. pst.setInt(3, 1);
  97. pst.setString(4, mQuestion[i]);
  98. pst.setString(5, mAnswera[i]);
  99. pst.setString(6, mAnswerb[i]);
  100. pst.setString(7, mAnswerc[i]);
  101. pst.setString(8, mAnswerd[i]);
  102. pst.setString(9, mAnswere[i]);
  103. pst.setString(10, "");// f 默认为空
  104. pst.setString(11, "");// g
  105. pst.setString(12, mExamExplain[i]);
  106. pst.setInt(13, 0);// totalnumber
  107. pst.setInt(14, 0);// wrongnumber
  108. pst.setString(15, mTrueAnswer[i]);
  109. pst.setInt(16, 1);
  110.  
  111. pst.executeUpdate();
  112. pst.close();
  113. conn.close();
  114.  
  115. }
  116.  
  117. }
  118.  
  119. }

  

 

2016年3月15日Android实习日记的更多相关文章

  1. 2016年3月11日Android实习日记

    1.明天删除orthodotics_design_animation_content_gif.gif文件.(已完成) 2. 如何检测内存泄露? A: 可以通过一些性能监测分析工具,如 JProfile ...

  2. 2016年3月10日Android实习日记

    待解决问题: *1:内部ScrollView与外部手势事件滑动冲突问题. *2:Linearlayout+View+LinearLayout横向排列,这其中两个LinearLayout内部各有3个竖向 ...

  3. 2016年3月9日Android实习日记

    1. 解决 org.eclipse.swt.SWTException: Graphic is disposed 问题. 参考:http://www.xuebuyuan.com/1896964.html ...

  4. 2016年3月8日Android实习日记

    1.出现fragment后台栈的bug. bug描述:当点击加入后台栈的操作按钮改变指定控件的内容之后,称为A操作:接下来又点击其它没有操作后台栈的按钮来修改原来指定的控件内容,称为B操作.然后点击b ...

  5. 2016年3月4日Android实习笔记

    1.让水平LinearLayout中的两个子元素分别居左和居右 在LinearLayout中有两个子元素,LinearLayout的orientation是horizontal.需要让第一个元素居左, ...

  6. 2016年3月3日android实习笔记

    1: android自定义控件时,通常需要重写父类构造函数.这三个够找函数具体啥时调用? public View (Context context) 是在java代码创建视图的时候被调用,如果是从xm ...

  7. 2016年3月1日Android实习笔记

    1:经查资料,Android中gif动画加载共有两种 1)利用WebView,WebView 主要调用三个方法:LoadUrl.LoadData.LoadDataWithBaseURL 2)主要用的是 ...

  8. 2016年3月11日Android学习日记

    1.调试技巧:当一次调试过后,可以在App重新返回当前的状态,然后再调试,而不用再点击Android studio的Debug按钮. 参考:http://www.2cto.com/kf/201506/ ...

  9. 2016年12月15日 星期四 --出埃及记 Exodus 21:10

    2016年12月15日 星期四 --出埃及记 Exodus 21:10 If he marries another woman, he must not deprive the first one o ...

随机推荐

  1. Node 7.6默认支持Async/Await

    Node.js 7.6正式默认支持async/await功能,并能够使低内存设备获得更出色的性能. Node 7.6对async/await的支持来自于将V8(Chromium JavaScript引 ...

  2. gunicorn+flask使用与配置

    gun.conf的内容 import os bind = '10.1.240.222:5000' workers = 4 backlog = 2048 worker_class = "syn ...

  3. 『转载』hadoop2.x常用端口、定义方法及默认端口

    『转载』hadoop2.x常用端口.定义方法及默认端口 1.问题导读 DataNode的http服务的端口.ipc服务的端口分别是哪个? NameNode的http服务的端口.ipc服务的端口分别是哪 ...

  4. 转载:2.2.5 在配置中使用变量《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19630.html 有些模块允许在配置项中使用变量,如在日志记录部分,具体示例如下.log_format  main  '$remot ...

  5. 转载:Linux操作系统(1.3.1)《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19611.html 1.3 准备工作 由于Linux具有免费.使用广泛.商业支持越来越完善等特点,本书将主要针对Linux上运行的Ng ...

  6. Ex 6_9 某个字符串处理语言提供了一个将字符串一分为二的基本操作..._第六次作业

    设字符串的长度为n,整型数组arr[0. . .n-1]的第一个数和最后一个数为开始点与结束点的位置,中间的数为拆分点的位置,设cost[i,j]为第i个分割点到第j个分割点的最小代价,两个分割点之间 ...

  7. Hibernate 常用jar包 分析

    antlr-2.7.6.jar的作用 ANTLR (ANother Tool for Language Recognition) 是一个PCCTS制定的语言工具,它为他创建认定者,程序编译者,翻译者提 ...

  8. JavaScript对象简介(一)

    本节介绍js的9个对象:Array数组对象 Boolean(true false) Date日前对象 Math 数学对象 Number 数字对象 String 字符串对象 RegExp 正则表达式对象 ...

  9. PHP 将数组的值赋值给一组变量

    经常需要将一个字符串分割成一组值,然后赋值给不同的变量. 逐行赋值非常繁琐,于是查了一下 PHP 中是否有类似 python 中 a, b = (a, b) 的操作. 果然有 $info = arra ...

  10. python+selenium六:等待相关

    显式等待(sleep): 固定的等待(死等),不管页面有没有加载完,都等设置的时间过了再做下一步操作 隐式等待 全局生效,只写一次即可(仅当前页面),缺点:如果页面一直转圈,如:js出错将等待到所设置 ...