MathQuiz是我在香港大学学习Smart Phone这门课程的个人作业,一个用来进行数学测验的android app。 使用API Level 24 with minimum API Level 21,使用AVD (Nexus S with resolution 800X480). 这篇文章将归纳我做这个小项目过程中遇到的难点和收获。
 
 
目录结构 这个项目我使用了android studio,app是root目录,manifests是配置文件,java是编写的业务代码文件,res是资源文件。
重要代码demo 页面跳转
Intent  intent  =  new  Intent (getBaseContext(), GradeActivity.class); intent.putExtra("ansCorrect" ,ansCorrect); startActivity(intent);
 
用户输入答案保留两位小数 这里我用了监听用户输入,当用户输入小数位数超过两位时,调用处理函数
boolean  checkDecimal (String text) {         Boolean  ifFormat  =  false ;         if  (text.contains("." )) {             int  index  =  text.indexOf("." );             if  (index + 3  < text.length()) {                 initPrompt("Warning" ,"If your answers are not integers, please round them to 2 decimal places." );                 ifFormat = true ;             }         }         return  ifFormat;     }
 
自定义图标提示框
void  initPrompt (String txt, String msg)  {         LayoutInflater  inflater  =  getLayoutInflater();         View   dialog  =  inflater.inflate(R.layout.prompt,(ViewGroup)findViewById(R.id.dialog;         AlertDialog.Builder  builder  =  new  AlertDialog .Builder(this );         TextView  message  =  (TextView)dialog.findViewById(R.id.tv);         message.setText(msg);         builder.setTitle(txt);         builder.setPositiveButton("OK" , new  DialogInterface .OnClickListener() {             @Override              public  void  onClick (DialogInterface dialog, int  which)  {             }         });         builder.setView(dialog);         builder.setIcon(R.drawable.logo);         builder.show();     }
 
<LinearLayout  xmlns:android ="http://schemas.android.com/apk/res/android"      android:id ="@+id/dialog"      android:layout_width ="match_parent"      android:layout_height ="match_parent"      android:orientation ="horizontal" >      <TextView          android:layout_margin ="8dp"          android:id ="@+id/tv"          android:layout_width ="wrap_content"          android:layout_height ="wrap_content"          android:text ="textview show"  /> </LinearLayout > 
 
神奇的错误 在我调试代码的过程中控制台出现了这样的错误提示:
 10 -22  14 :00 :11 .310  1689 -1689 /com.android.inputmethod.latin E/RichInputConnection: Unable to connect to the editor to retrieve text.10 -22  14 :00 :11 .310  1689 -1689 /com.android.inputmethod.latin D/RichInputConnection: Will try to retrieve text later.
 
这个错误会导致控制台无法打印信息,给我的调试带来很大的麻烦。我google了很久也没有找到合适的解决方案,最后我重建了一个项目,将相关代码复制才强硬解决了这个问题,如果还有好的方式,希望看到的人能联系我,谢谢了。
附录项目成果 & github链接