歐陽(yáng)桂秀
摘 要
介紹了Android中Intent類的一個(gè)構(gòu)造方法,使用這個(gè)構(gòu)造方法來(lái)創(chuàng)建Intent類的對(duì)象,實(shí)現(xiàn)同一個(gè)應(yīng)用程序中多個(gè)Activity對(duì)象的切換,從而實(shí)現(xiàn)更多的功能。
【關(guān)鍵詞】計(jì)算 測(cè)試 Android Activity Intent
1 引言
一個(gè)應(yīng)用程序可以包含若干個(gè)Activity。可以讓某個(gè)Activity對(duì)象使用Intent對(duì)象來(lái)啟動(dòng)其它的Activity對(duì)象。
2 Intent類的一個(gè)構(gòu)造方法
Intent(Context packgeContext ,Class <?> cls):該構(gòu)造方法的參數(shù)packgeContext是當(dāng)前應(yīng)用程序所在的上下文,參數(shù)cls是打算啟動(dòng)的Activity對(duì)象的類的名字。
例如:
假設(shè),已經(jīng)有如下類的聲明:
class Calculator extends Activity
class MainCalculator extends Activity
那么,下面這條語(yǔ)句
Intent intent=new Intent(this,MainCalculator.class);
作用是:當(dāng)前類的對(duì)象(Calculator類的當(dāng)前對(duì)象this),打算啟動(dòng)的Activity對(duì)象的類的名字是MainCalculator。
接下來(lái)的語(yǔ)句
startActivity(intent);
作用是:實(shí)現(xiàn)兩個(gè)Activity之間的切換。從當(dāng)前的Activity,啟動(dòng)另外一個(gè)Activity,即 MainCalculator。
3 一個(gè)Activity對(duì)象使用Intent對(duì)象來(lái)啟動(dòng)另一個(gè)Activity對(duì)象的實(shí)例
【例1】在Android中實(shí)現(xiàn)簡(jiǎn)單的計(jì)算能力測(cè)試系統(tǒng)。計(jì)算隨機(jī)給出的兩位數(shù)的加減法算術(shù)題,要求用戶回答,答對(duì)的提示“正確”,答錯(cuò)的提示“錯(cuò)誤”。隨時(shí)給出答題的正確率。
(1)第一個(gè)Activity的相關(guān)程序,文件Calculator.java:
package com.example.calculate;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.view.View;
import android.content.Intent; //加
public class Calculator extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
}
public void display(View view){
Intent intent=new Intent(this,MainCalculator.class);
try {
startActivity(intent);
}
catch(ActivityNotFoundException exp) {
AlertDialog.Builder build=new AlertDialog.Builder(this);
AlertDialog dialog = build.create();
dialog.setTitle("can not find activity!");
dialog.show();
}
}
public void endTest(View view){
System.exit(0);
}
}
(2)第二個(gè)Activity的相關(guān)程序,文件MainCalculator.java:
package com.example.calculate;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
public class MainCalculator extends Activity {
EditText texta,textb,textc;
TextView labela,label3,label4;
Button problem,judge;
int a,b,right_answer,answer,op,temp;
float p,right,total;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
texta = (EditText)findViewById(R.id.texta); //被加數(shù)(被減數(shù))
textb= (EditText)findViewById(R.id.textb); //加數(shù)(減數(shù))
textc = (EditText)findViewById(R.id.textc); //輸入計(jì)算結(jié)果
labela=(TextView)findViewById(R.id.labela); //運(yùn)算符“+”或“-”
label3=(TextView)findViewById(R.id.label3); //輸出“正確”或“錯(cuò)誤”的提示信息
label4=(TextView)findViewById(R.id.label4); //正確率
problem=(Button)findViewById(R.id.problem); //“出題”按鈕
judge=(Button)findViewById(R.id.judge); //“判斷”按鈕
}
public void show(View view){
texta.setText(" ");
textb.setText(" ");
textc.setText(" ");
label3.setText(" ");
a=(int)(Math.random( )*100)+1;
b=(int)(Math.random( )*100)+1;
op=(int)(Math.random( )*2);
if(op<1)
{
labela.setText("+");
texta.setText(String.valueOf(a));
textb.setText(String.valueOf(b));
right_answer=a+b;
}
else
{
labela.setText("-");
if(a
{
temp=a;
a=b;
b=temp;
}
texta.setText(String.valueOf(a));
textb.setText(String.valueOf(b));
right_answer=a-b;
}
}
public void decide(View view){
total++;
String s2=" ";
s2=textc.getText().toString();
answer=Integer.parseInt(s2.trim());
if (right_answer==answer)
{ label3.setText("正確");
right++;
}
else
{ label3.setText("錯(cuò)誤");
}
p=(right/total)*100;
String s3=String.format("%.2f", p);
label4.setText("正確率="+s3+"%");
}
}
(3)配置文件AndroidManifest.xml,在之前,新增加Activity 語(yǔ)句如下:
第一個(gè)Activity的界面如圖1所示。
單擊圖1的“歡迎測(cè)試”按鈕,出現(xiàn)的第二個(gè)Activity的初始界面如圖2所示。
第二個(gè)Activity,單擊“出題”按鈕,輸入運(yùn)算結(jié)果,然后單擊“判斷”按鈕,運(yùn)行結(jié)果如圖3所示。
4 結(jié)束語(yǔ)
通過(guò)學(xué)習(xí)Android中Intent類的構(gòu)造方法,我們可以使用Intent類的構(gòu)造方法來(lái)創(chuàng)建Intent類的對(duì)象,實(shí)現(xiàn)同一個(gè)應(yīng)用程序中多個(gè)Activity對(duì)象的切換,從而實(shí)現(xiàn)更多的功能。
這個(gè)簡(jiǎn)單的計(jì)算能力測(cè)試系統(tǒng)的界面welcome.xml和test.xml比較簡(jiǎn)單,在這里就不介紹了。另外,這個(gè)系統(tǒng)還可以擴(kuò)展,實(shí)現(xiàn)乘、除等計(jì)算功能。限于篇幅,不再詳細(xì)講解了。
參考文獻(xiàn)
[1]耿祥義,張躍平.Android手機(jī)程序設(shè)計(jì)實(shí)用教程[M].北京:清華大學(xué)出版社,2013.
[2]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2013.
[3]明日科技.Android從入門到精通[M].北京:清華大學(xué)出版社,2012.