安卓笔记(六)

笔记(五)中采用String[]数组的形式来存放问题,对于简短的问题倒还好,但假如问题比较多,而且内容比较长的话,显然这种方式就不太好了,思考是否有更好的办法来解决呢?于是经过网上百度一番,发现了利用方法:
1.建立一个questions.xml的文件,利用String-Array进行存放;
2.使用getResources().getStringArray(R.array.questions);方法来获取String-Arrary中的字符串集合;
3.运行的时候,发现报错,总是提示我“空指针”,又是一通搜索,终于发现,getResources().getStringArray()这个方法必须要在OnCreate()方法后才能获取到,否则只能获取到空值;
4.再次运行,当点击按钮进行Activity跳转时,再次报错,查看logcat,发现依然是“空指针”错误,经过一晚上的思考,终于想明白了问题所在,问题的根源在于,当执行鼠标点击监听动作时,需要在Listener的监听类中再次使用getResources().getStringArray()方法;
5.重新运行,bingo!

psb psb (1)

安卓笔记(五)

清明3天,看了一整天的视频,学到了相对布局后,根据所学,也为了验证自己的想法,于是打算做个小实验来练练手,说做就做:
首先说说思路:
点击“开始”按钮,开始答题,然后通过点击“Next”按钮,切换至下一题,很简单的一个实现,难点主要在于问题的切换,总不能有100个问题,建100个Activity吧?考虑用数组来实现,Let’s GO!
1.开始界面的Activity很简单,创建一个按钮即可;
2.然后在“开始”按钮上添加0ncilckListener的监听动作;
3.接下来是答题界面,新建一个OtherActivity;
4.创建所需控件,一个TextView和一个Button;(后续版本需要增加RadioButton的控件)
5.创建一个字符串数组,将问题写入数组;
6.创建并初始化一个int类型的mclick,用于记录每次点击next按钮的数量;
7.创建一个Next的鼠标监听动作类(PressNext);
8.在监听类中,创建每次点击按钮,mclick增加一次,即mclick++;
9.在OtherActivity中引用相应组件,对按钮添加PressNext动作。

[详细阅读…]

安卓笔记(四)

创建一个简单的计算器:
需要两个Activity,一个填写数值的Activity,一个得到计算结果的Activity。
1.在第一个Activity_Main.xml中创建相应的控件:一个TextView,两个EditText以及一个按钮;
2.TextView及按钮的显示字符串,在String.xml中建立;
3.在Activity.java中引用Activity_Main.xml中的相应控件,并设置显示方式:setContentView(R.layout.activity_main);
4.建立计算结果的Activiy:Result.java及result.xml;
5.在result.xml中创建相应控件:一个TextView;
6.在Result.java中引用result.xml中的Textview控件,并设置显示方式:setContentView(R.layout.result);
7.在Activity.java中创建一个内部类,jisuanlistener,并继承OnClickListener接口;
8.创建并初始化Intent:Intent intent = new Intent();
9.设置从两个EditText控件中获得的字符串:String onestr = textone.getText().toString();
String twostr = texttwo.getText().toString();
10.实现从当前activity向另一个activity的跳转:intent.setClass(MainActivity.this, Result.class);
11.启动intent,并将MainActivity中获得数值利用intent传输至ResultActivity:MainActivity.this.startActivity(intent);
12.在Result.java中创建intent,并设置为获取数值:Intent intent = getIntent();
13.将获得到的数值,转化为字符串:String textonestr = intent.getStringExtra(“one”); //这里需要注意的是获得的是key,而非value;
String texttwostr = intent.getStringExtra(“two”);
14.切记在AndroidManifest.xml中注册result这个activity,并设置name和label;

[详细阅读…]