歐陽桂秀
摘 要
介紹了Android中Intent類的一個構造方法,使用這個構造方法來創(chuàng)建Intent類的對象,實現(xiàn)同一個應用程序中多個Activity對象的切換,從而實現(xiàn)更多的功能。
【關鍵詞】計算 測試 Android Activity Intent
1 引言
一個應用程序可以包含若干個Activity。可以讓某個Activity對象使用Intent對象來啟動其它的Activity對象。
2 Intent類的一個構造方法
Intent(Context packgeContext ,Class <?> cls):該構造方法的參數(shù)packgeContext是當前應用程序所在的上下文,參數(shù)cls是打算啟動的Activity對象的類的名字。
例如:
假設,已經(jīng)有如下類的聲明:
class Calculator extends Activity
class MainCalculator extends Activity
那么,下面這條語句
Intent intent=new Intent(this,MainCalculator.class);
作用是:當前類的對象(Calculator類的當前對象this),打算啟動的Activity對象的類的名字是MainCalculator。
接下來的語句
startActivity(intent);
作用是:實現(xiàn)兩個Activity之間的切換。從當前的Activity,啟動另外一個Activity,即 MainCalculator。
3 一個Activity對象使用Intent對象來啟動另一個Activity對象的實例
【例1】在Android中實現(xiàn)簡單的計算能力測試系統(tǒng)。計算隨機給出的兩位數(shù)的加減法算術題,要求用戶回答,答對的提示“正確”,答錯的提示“錯誤”。隨時給出答題的正確率。
(1)第一個Activity的相關程序,文件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)第二個Activity的相關程序,文件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); //輸入計算結果
labela=(TextView)findViewById(R.id.labela); //運算符“+”或“-”
label3=(TextView)findViewById(R.id.label3); //輸出“正確”或“錯誤”的提示信息
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("錯誤");
}
p=(right/total)*100;
String s3=String.format("%.2f", p);
label4.setText("正確率="+s3+"%");
}
}
(3)配置文件AndroidManifest.xml,在之前,新增加Activity 語句如下:
第一個Activity的界面如圖1所示。
單擊圖1的“歡迎測試”按鈕,出現(xiàn)的第二個Activity的初始界面如圖2所示。
第二個Activity,單擊“出題”按鈕,輸入運算結果,然后單擊“判斷”按鈕,運行結果如圖3所示。
4 結束語
通過學習Android中Intent類的構造方法,我們可以使用Intent類的構造方法來創(chuàng)建Intent類的對象,實現(xiàn)同一個應用程序中多個Activity對象的切換,從而實現(xiàn)更多的功能。
這個簡單的計算能力測試系統(tǒng)的界面welcome.xml和test.xml比較簡單,在這里就不介紹了。另外,這個系統(tǒng)還可以擴展,實現(xiàn)乘、除等計算功能。限于篇幅,不再詳細講解了。
參考文獻
[1]耿祥義,張躍平.Android手機程序設計實用教程[M].北京:清華大學出版社,2013.
[2]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2013.
[3]明日科技.Android從入門到精通[M].北京:清華大學出版社,2012.