版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、表格布局:Main.xml<?xml version="1.0" encoding="utf-8"?> <TableLayout android:id="+id/TableLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="<TableRow android:id="+id/TableRow01" and
2、roid:layout_width="wrap_content" android:layout_height="wrap_content"><TextView android:id="+id/label" android:layout_height="wrap_content" android:layout_width="160dip"android:gravity="right" android:text="用戶名:" android:pad
3、ding="3dip" ></TextView><EditText android:id="+id/entry" android:layout_height="wrap_content" android:layout_width="160dip"android:padding="3dip" ></EditText></TableRow><TableRow android:id="+id/TableRow02" and
4、roid:layout_width="wrap_content" android:layout_height="wrap_content"><Button android:id="+id/ok" android:layout_height="wrap_content" android:padding="3dip" android:text="確認"></Button><Button android:id="+id/Button02
5、" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text="取消"></Button></TableRow></TableLayout> 功能描述:主界面上有一個“登錄”按鈕,點擊“登錄”按鈕后打開一個新的Activity;新的Activity上面有輸入用戶名和密碼的控件,在用戶關閉這個Activity
6、后,將用戶輸入的用戶名和密碼傳遞到主界面中。 編程要點:主界面的Activity命名為MainActivity;啟動新的Activity命名為UserLoginActivity;分別使用顯示啟動和隱式啟動的方式,啟動新的Activity;用戶名中不能出現(xiàn)“”符號,同時長度不超過12個字符;密碼使用密碼文本顯示方式,即顯示為“*”,同時只能為數(shù)字; 返回的用戶名和密碼要以Toast的方式顯示出來; MainActivity和UserLoginActivity中各個生命周期的回調函數(shù)中要以Log.i方式顯示日志信息。兩個布局xml代碼類似上面的布局,故省略,自己模仿MainActivity.jav
7、apublic class MainActivity extends Activity protected int SUBACTIVITY1 = 1;/唯一標示子activity標識碼private static String TAG = "MainActivity"/用來在運行時顯示activity日志,即上面要求的第五條Button button1,button2;public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layo
8、ut.main);Log.i(TAG, "(1) onCreate()");/日志上顯示onCreate()button1 = (Button) this.findViewById(R.id.button1);button2 = (Button) this.findViewById(R.id.button2);button1.setOnClickListener(new View.OnClickListener() public void onClick(View v) Intent intent = new Intent(MainActivity.this,UserLog
9、inActivity.class);Toast.makeText(getApplicationContext(), "顯示啟動", Toast.LENGTH_SHORT).show();startActivityForResult(intent, SUBACTIVITY1); );button2.setOnClickListener(new View.OnClickListener()public void onClick(View v) Intent intent = new Intent("cn.test.nchu");Toast.makeText(
10、getApplicationContext(), "隱式啟動", Toast.LENGTH_SHORT).show();startActivityForResult(intent, SUBACTIVITY1););protected void onActivityResult(int requestCode, int resultCode, Intent data) super.onActivityResult(requestCode, resultCode, data);if (resultCode = RESULT_OK) Uri uriData = data.getD
11、ata();Toast.makeText(getApplicationContext(), uriData.toString(),Toast.LENGTH_SHORT).show(); else Toast.makeText(getApplicationContext(), "用戶名和密碼為空", Toast.LENGTH_SHORT).show();/可視生命周期開始時被調用,對用戶界面進行必要的更改 public void onStart() super.onStart(); Log.i(TAG, "(2) onStart()"); /在onStar
12、t()后被調用,用于恢復onSaveInstanceState()保存的用戶界面信息 public void onRestoreInstanceState(Bundle savedInstanceState) super.onRestoreInstanceState(savedInstanceState); Log.i(TAG, "(3) onRestoreInstanceState()"); /在活動生命周期開始時被調用,恢復被onPause()停止的用于界面更新的資源 public void onResume() super.onResume(); Log.i(TAG,
13、 "(4) onResume()"); / 在onResume()后被調用,保存界面信息 public void onSaveInstanceState(Bundle savedInstanceState) super.onSaveInstanceState(savedInstanceState); Log.i(TAG, "(5) onSaveInstanceState()"); /在重新進入可視生命周期前被調用,載入界面所需要的更改信息 public void onRestart() super.onRestart(); Log.i(TAG, &quo
14、t;(6) onRestart()"); /在活動生命周期結束時被調用,用來保存持久的數(shù)據或釋放占用的資源。 public void onPause() super.onPause(); Log.i(TAG, "(7) onPause()"); /在可視生命周期結束時被調用,一般用來保存持久的數(shù)據或釋放占用的資源 public void onStop() super.onStop(); Log.i(TAG, "(8) onStop()"); /在完全生命周期結束時被調用,釋放資源,包括線程、數(shù)據連接等 public void onDestroy
15、() super.onDestroy(); Log.i(TAG, "(9) onDestroy()"); UserLoginActivity.javapublic class UserLoginActivity extends Activity EditText username,password;Button submit,reset;private static String TAG = "MainActivity"protected void onCreate(Bundle savedInstanceState) / TODO Auto-gener
16、ated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.login); Log.i(TAG, "(1) onCreate()");username=(EditText)this.findViewById(R.id.username);password=(EditText)this.findViewById(R.id.password);submit=(Button)this.findViewById(R.id.submit);reset=(Button)this.findViewB
17、yId(R.id.reset);username.setFocusable(true);username.setOnKeyListener(new OnKeyListener()public boolean onKey(View v, int keyCode, KeyEvent event) / TODO Auto-generated method stubint unicodeChar = event.getUnicodeChar();if(unicodeChar= 64)return true;else return false;);submit.setOnClickListener(ne
18、w View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubString name =username.getText().toString();String pass=password.getText().toString();String uriString="用戶名:"+name+"密碼:"+pass; Uri data = Uri.parse(uriString); Intent result = new Intent(null, da
19、ta); setResult(RESULT_OK, result);finish(););reset.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubsetResult(RESULT_CANCELED, null);finish(););下面和MainActivity.java中的一樣都是設置activity生命周期在log中顯示AndroidManifest.xml<?xml version="1.0"
20、 encoding="utf-8"?><manifest xmlns:android=" package="cn.test.nchu" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="drawable/icon" android:label=&qu
21、ot;string/app_name"> <activity android:name=".MainActivity" android:label="string/app_name"> <intent-filter> <action android:name="ent.action.MAIN" /> <category android:name="ent.category.LAUNCHER" /> </
22、intent-filter> </activity><activity android:name="cn.test.nchu.UserLoginActivity" >/顯式啟動要加的activity <intent-filter> <action android:name="cn.test.nchu" />/隱式啟動,名字和MainActivity.java中的隱式啟動里的名字一樣 <category android:name="ent.category.DEFA
23、ULT" /> </intent-filter> </activity> </application></manifest>編程建立一個簡單的進程內服務,實現(xiàn)比較兩個整數(shù)大小的功能。服務提供IntCompare(Int, Int)函數(shù),輸入兩個整數(shù),輸出較大的整數(shù)。 主界面的Activity命名為MainActivity;提供兩個EditText,分別輸入兩個整數(shù);提供一個Botton,啟動比較過程;提供一個TextView,顯示較大的整數(shù);分別使用啟動方式和綁定方式使用Service;分別使用Handle和AsyncTask更新
24、TextView中的內容。啟動方式MainActivity.javapublic class MainActivity extends Activity public static int maxNum;public static Handler handler=new Handler();private static TextView result=null;private static Button compare=null;private static Button reset=null;private static EditText one=null;private static Ed
25、itText two=null;public static void UpdateGUI(int refreshDouble)maxNum=refreshDouble;handler.post(RefreshLable); private static Runnable RefreshLable=new Runnable()public void run() result.setText(String.valueOf(maxNum); public void onCreate(Bundle savedInstanceState) final Bundle mybundle=new Bundle
26、(); super.onCreate(savedInstanceState); setContentView(R.layout.main); final Intent intent=new Intent(MainActivity.this,CompareService.class); result=(EditText)findViewById(R.id.result); compare=(Button)findViewById(Rpare); reset=(Button)findViewById(R.id.reset); one=(EditText)findViewById(R.id.one)
27、; two=(EditText)findViewById(R.id.two); compare.setOnClickListener(new OnClickListener() public void onClick(View v) mybundle.putString("one", one.getText().toString(); mybundle.putString("two", two.getText().toString(); intent.putExtras(mybundle); startService(intent); ); reset.
28、setOnClickListener(new OnClickListener() public void onClick(View v) one.setText(null); two.setText(null); result.setText(null); ); CompareService.javapublic class CompareService extends Service private Thread workThread;Bundle bundle=null;int one=0,two=0;public void onCreate() super.onCreate(); wor
29、kThread = new Thread(null,backgroudWork,"WorkThread");public void onStart(Intent intent, int startId) super.onStart(intent, startId); bundle=intent.getExtras(); String c1=bundle.getString("one"); String c2=bundle.getString("two"); if(!c1.toString().equals("")&
30、amp;&!c2.toString().equals("") one=Integer.parseInt(c1); two=Integer.parseInt(c2); if (!workThread.isAlive() workThread.start(); public IBinder onBind(Intent intent) return null;private Runnable backgroudWork = new Runnable()public void run() int randomDouble =IntCompare(one,two);MainA
31、ctivity.UpdateGUI(randomDouble);stopSelf();int IntCompare(int a,int b)if(a>=b)return a;elsereturn b;這樣并沒有完,還要在AndroidManifest.xml中加入service名字,如<application 。(和前面的AndroidManifest.xml代碼相同) <service android:name=".CompareService" ></service></application>綁定啟動MainActivi
32、ty.Javapublic class MainActivity extends Activity private boolean isBound = false;private CompareService compareService;int a=0,b=0; public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); final TextView result=(TextView)findViewById(R.id.re
33、sult); Button compare=(Button)findViewById(Rpare); Button reset=(Button)findViewById(R.id.reset); final EditText one=(EditText)findViewById(R.id.one); final EditText two=(EditText)findViewById(R.id.two); if(!isBound)Intent serviceIntent=new Intent(MainActivity.this,CompareService.class);bindService(serviceIntent,mConnection,Context.BIND_AUTO_CREATE);isBound=true; compare.setOnClickListener(new OnClickList
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年高性能鐵氧體一次料投資申請報告
- 2024年六盤水市六枝特區(qū)一級造價工程師《土建計量》全真模擬試題含解析
- 2024導購員勞動合同
- 2024國際貿易買賣合同參考范本
- 2024租店面合同格式范文
- 2024大連市商品混凝土買賣合同書范本
- 2024外教聘用的合同范本
- 2023LK系列自主可控可編程序控制器
- 2024混凝土單項承包合同
- 職業(yè)技術學院電氣自動化技術專業(yè)人才培養(yǎng)方案
- 2024年列車員技能競賽理論考試題庫500題(含答案)
- 16《麻雀》 教學設計-2024-2025學年語文四年級上冊(統(tǒng)編版)
- 2《我向國旗敬個禮》教學設計-2024-2025學年道德與法治一年級上冊統(tǒng)編版
- 2024年全國職業(yè)院校技能大賽中職組(安全保衛(wèi)賽項)考試題庫(含答案)
- 2024年中國主要城市交通分析報告二季度
- 2024-2030年中國半導體行業(yè)市場發(fā)展現(xiàn)狀及發(fā)展趨勢與投資前景研究報告
- Starter Unit 3 Welcome 單元測試卷2024年秋人教版新教材七年級英語上冊
- 宣講《鑄牢中華民族共同體意識》全文課件
- MOOC 跨文化交際通識通論-揚州大學 中國大學慕課答案
- 入職申請表(完整版)
- 26個英文字母卡片
評論
0/150
提交評論