版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、移動(dòng)平臺(tái)及其應(yīng)用第4章 Android應(yīng)用開(kāi)發(fā)基礎(chǔ)(6學(xué)時(shí))4.1 視圖類View 用戶界面 用戶界面事件 UI設(shè)計(jì)4.2 窗口組件Activity4.3 常用Widget控件 TextView EditText Toast Button Dialog ListView4.4 其它Widget控件:日期/時(shí)間選擇器 自動(dòng)完成文本 菜單設(shè)計(jì)4.5 狀態(tài)欄消息通知Notification4.6 文件存儲(chǔ)4.7 使用SharedPreferences保存用戶信息4.8 意圖類 Activity組件的顯式調(diào)用與隱式調(diào)用 延期意圖 4.9 注冊(cè)應(yīng)用程序需要的權(quán)限 移動(dòng)平臺(tái)及其應(yīng)用4.1.1 Androi
2、d4.1.1 Android界面視圖類界面視圖類移動(dòng)平臺(tái)及其應(yīng)用在Android MVC中,控制器是由Activity組件(詳見(jiàn)第4.2節(jié))完成的,它能夠接受并響應(yīng)程序的外部動(dòng)作 。移動(dòng)平臺(tái)及其應(yīng)用4.1.2 Android4.1.2 Android用戶界面事件用戶界面事件移動(dòng)平臺(tái)及其應(yīng)用4.1.2 Android4.1.2 Android用戶界面事件用戶界面事件移動(dòng)平臺(tái)及其應(yīng)用鍵盤(pán)事件移動(dòng)平臺(tái)及其應(yīng)用按鍵禁用的一個(gè)例子【返回】移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用注意:初學(xué)者應(yīng)先掌握垂直線性布局垂直線性布局、水平線性布局水平線性布局及其嵌套嵌套用法 Activity的UI設(shè)計(jì)與ASP.NET窗體設(shè)
3、計(jì)類似【返回】移動(dòng)平臺(tái)及其應(yīng)用導(dǎo)入圖片資源方法n 先在res文件夾上右鍵 - 新建 Folder,命名為 drawable圖片資源固定存放位置名字不要更改移動(dòng)平臺(tái)及其應(yīng)用n 接著在res/drawable文件夾上右鍵 - Import - 選擇General下的 File System移動(dòng)平臺(tái)及其應(yīng)用n 下一步,點(diǎn)擊Browse,找到圖片位置,并選中所需圖片文件,F(xiàn)inish。選中圖片移動(dòng)平臺(tái)及其應(yīng)用圖片資源導(dǎo)入完成后自動(dòng)在R.java注冊(cè)(索引)文件夾變化R.Java自動(dòng)生成自動(dòng)生成圖片文件的索引移動(dòng)平臺(tái)及其應(yīng)用最終生成的testlayout.xml代碼【返回】布局根元素+:表示要在R.ja
4、va中新建一個(gè)索引+id/imageView1:表示在R.id類中創(chuàng)建一個(gè)id值為imageView1的索引變量引用圖片資源移動(dòng)平臺(tái)及其應(yīng)用4.2 窗口組件Activityn 每一個(gè)顯示屏幕就是一個(gè)Activity。n Activity能為用戶提供可視化界面。n 程序通常由多個(gè)Activity組成。n Activity有自己的生命周期,由Android系統(tǒng)控制。Activity1(界面1)Activity2(界面2)ActivityN(界面N)其他Java類Android類移動(dòng)平臺(tái)及其應(yīng)用MainActivity.java代碼分析設(shè)置一個(gè)Activity的布局界面訪問(wèn)在R.java中注冊(cè)的ac
5、tivity_main.xml布局資源文件Activity一般以 *Activity 命名且首字母大寫(xiě)繼承Activity生命周期之一(可理解為程序入口)調(diào)用父類的onCreate方法當(dāng)一個(gè)Activity被創(chuàng)建時(shí),就能從onCreate的參數(shù)saveInsanceState中獲得狀態(tài)數(shù)據(jù)菜單設(shè)計(jì)見(jiàn)第4.4.3小節(jié)子類覆蓋父類方法程序存放的包導(dǎo)入程序所需的包移動(dòng)平臺(tái)及其應(yīng)用Activity及其生命周期n Activity生命周期指Activity從啟動(dòng)到銷毀的過(guò)程。n Activity表現(xiàn)為四種狀態(tài):n 活動(dòng)狀態(tài)Active:Activity在用戶界面中處于最上層,完全能被用戶看到,能夠與用戶
6、進(jìn)行交互。n 暫停狀態(tài)Pause:Activity在界面上被部分遮擋,不再處于用戶界面的最上層,且不能夠與用戶進(jìn)行交互。(如彈出選擇框時(shí))n 停止?fàn)顟B(tài)Stop:Activity被其他Activity全部遮擋,界面完全不能被用戶看到。(如玩游戲時(shí)來(lái)電了)n 非活動(dòng)狀態(tài)Dead:Activity沒(méi)有啟動(dòng)或者被finish()。移動(dòng)平臺(tái)及其應(yīng)用Hello工程 回顧系統(tǒng)自動(dòng)生成的java文件R.java是項(xiàng)目中所有資源的索引文件,資源以(資源id,值)形式存放在對(duì)應(yīng)的內(nèi)部類中R.java文件在程序中引用資源時(shí)用:R.內(nèi)部類.資源id例如:setContentView(R.layout.activity
7、_main);getResources().getString(R.string.hello_world)在xml布局中則引用:內(nèi)部類/資源idandroid:text=string/hello_world 資源目錄圖片資源布局資源菜單資源值資源值資源是單個(gè)映射過(guò)去res文件夾下的文件會(huì)被映射到R.java中布局資源、菜單資源文件是整體映射過(guò)去內(nèi)部類例如例如移動(dòng)平臺(tái)及其應(yīng)用n 比方:墻上鑲嵌了壁櫥,壁櫥放置了各種各樣的物件。Activity和界面布局layout簡(jiǎn)潔實(shí)用夸張移動(dòng)平臺(tái)及其應(yīng)用Activity和界面布局layoutn 墻就類似Activity,壁櫥就類似layout布局管理器,壁櫥
8、上的物件就類似那些UI元素。n 墻的背后或許還有我們看不見(jiàn)的東西,這些東西可能是Java的實(shí)體類、邏輯控制類、網(wǎng)絡(luò)連接類等。移動(dòng)平臺(tái)及其應(yīng)用activity_main.xml布局代碼分析可視化設(shè)計(jì)界面自動(dòng)生成的布局文件TextView組件各種UI組件布局文件通常命名為: activity_*, 其中*對(duì)應(yīng)某個(gè)Activity移動(dòng)平臺(tái)及其應(yīng)用布局根元素TextView組件嵌在RelativeLayout組件中TextView屬性布局屬性:表示要引用一個(gè)資源string/hello_world:表示引用 R.string.hello_world 這個(gè)值資源,R.string 類中的值資源來(lái)源于 r
9、es/values/strings.xml 文件strings.xml文件這個(gè)就是:string/hello_world移動(dòng)平臺(tái)及其應(yīng)用界面布局文件中描述組件的xml語(yǔ)法格式2:組件中嵌入組件 嵌入的其他組件格式1:?jiǎn)蝹€(gè)組件簡(jiǎn)寫(xiě)不要掉了結(jié)束符結(jié)束符移動(dòng)平臺(tái)及其應(yīng)用Activity的四種狀態(tài)的變換關(guān)系圖移動(dòng)平臺(tái)及其應(yīng)用Activity棧:后進(jìn)先出新的按了返回鍵或Activity被finish被系統(tǒng)強(qiáng)制終止移動(dòng)平臺(tái)及其應(yīng)用Activity生命周期的事件回調(diào)函數(shù)n 隨著Activity自身狀態(tài)的變化,Android系統(tǒng)會(huì)調(diào)用不同的事件回調(diào)函數(shù)(7個(gè)):public class MyActivity
10、extends Activity protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); 移動(dòng)平臺(tái)及其應(yīng)用回調(diào)函數(shù)說(shuō)明函數(shù)函數(shù)說(shuō)明說(shuō)明onCreate()Activity啟動(dòng)后第一個(gè)被調(diào)用的函數(shù),常用來(lái)進(jìn)行Activity的初始化,
11、例如創(chuàng)建View、綁定數(shù)據(jù)或恢復(fù)信息等。onStart()當(dāng)Activity顯示在屏幕上時(shí)(此刻用戶尚不能交互),該函數(shù)被調(diào)用。onResume()當(dāng)用戶可以與Activity交互時(shí)(此時(shí)Activity成為前臺(tái)程序),被調(diào)用。onPause()當(dāng)Activity進(jìn)入暫停狀態(tài)時(shí)(部分遮擋),該函數(shù)被調(diào)用。主要用來(lái)釋放CPU資源、保存持久數(shù)據(jù)、關(guān)閉動(dòng)畫(huà)等。onStop()當(dāng)Activity對(duì)用戶不可見(jiàn)后,該函數(shù)被調(diào)用,Activity進(jìn)入停止?fàn)顟B(tài)。onRestart()當(dāng)Activity從停止stop狀態(tài)進(jìn)入start狀態(tài)前,調(diào)用該函數(shù)。onDestroy()在Activity被終止前,即進(jìn)入非
12、活動(dòng)狀態(tài)前,該函數(shù)被調(diào)用。有兩種情況該函數(shù)會(huì)被調(diào)用:(1)當(dāng)程序主動(dòng)調(diào)用finish()函數(shù);(2)程序被Android系統(tǒng)終結(jié)。移動(dòng)平臺(tái)及其應(yīng)用Activity生命周期圖移動(dòng)平臺(tái)及其應(yīng)用Activity生命周期的示例public class MainActivity extends Activity Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toast.makeTe
13、xt(getApplicationContext(), 創(chuàng)建, Toast.LENGTH_SHORT).show(); Override protected void onStart() super.onStart(); Toast.makeText(getApplicationContext(), 啟動(dòng), Toast.LENGTH_SHORT).show(); 備注:創(chuàng)建onStart()等快捷方法在編碼區(qū)用:ALT+/ 組合鍵移動(dòng)平臺(tái)及其應(yīng)用 Override protected void onResume() super.onResume(); Toast.makeText(getApp
14、licationContext(), 恢復(fù), Toast.LENGTH_SHORT).show(); Override protected void onPause() super.onPause(); Toast.makeText(getApplicationContext(), 暫停, Toast.LENGTH_SHORT).show(); Override protected void onStop() super.onStop(); Toast.makeText(getApplicationContext(), 停止, Toast.LENGTH_SHORT).show(); 移動(dòng)平臺(tái)及
15、其應(yīng)用 Override protected void onRestart() super.onRestart(); Toast.makeText(getApplicationContext(), 重啟, Toast.LENGTH_SHORT).show(); Override protected void onDestroy() super.onDestroy(); Toast.makeText(getApplicationContext(), 再見(jiàn), Toast.LENGTH_SHORT).show(); /end activity移動(dòng)平臺(tái)及其應(yīng)用設(shè)置Activity背景 (布局背景)1.
16、 設(shè)置背景色n在string.xml中配置:#000 n在layout文件中設(shè)置屬性:android:background=drawable/bgkcolor或者:直接賦值 android:background=#000移動(dòng)平臺(tái)及其應(yīng)用2. 設(shè)置背景圖片移動(dòng)平臺(tái)及其應(yīng)用主要步驟n 將適當(dāng)大小(如320*480)的圖片導(dǎo)入res/drawable文件夾 此時(shí)自動(dòng)生成資源idn 在Activity的onCreate()方法中添加代碼:R.javathis.getWindow().setBackgroundDrawableResource(R.drawable.bg320_480);設(shè)置背景圖片的方
17、法移動(dòng)平臺(tái)及其應(yīng)用測(cè)試1:正常啟動(dòng)程序onCreateonStartonResume移動(dòng)平臺(tái)及其應(yīng)用測(cè)試2:正常啟動(dòng)程序后點(diǎn)擊 退出程序onPauseonStoponDestroy移動(dòng)平臺(tái)及其應(yīng)用測(cè)試3:新啟動(dòng)一個(gè)AVD窗口(5556),給5554撥打電話,之后結(jié)束通話5554:是虛擬電話號(hào)碼新AVD窗口:5556【返回】來(lái)電時(shí)通話結(jié)束onPauseonStoponRestartonStartonResume移動(dòng)平臺(tái)及其應(yīng)用補(bǔ)充幾個(gè):1. 正常啟動(dòng)后按Home鍵:n onPause onStop2. 按Home鍵后再單擊應(yīng)用進(jìn)入:n onRestart onStart onResume3. 正
18、常啟動(dòng)后切換為橫屏(Ctrl+F11):n onPause onStop onDestroy onCreate onStart onResume【返回】移動(dòng)平臺(tái)及其應(yīng)用【返回】移動(dòng)平臺(tái)及其應(yīng)用4.3 Widget常用控件的使用移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用【返回】移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用課堂問(wèn)題1. 示例中創(chuàng)建的程序放在哪兒?是什么類型的?在哪兒可以體現(xiàn)這個(gè)程序是主程序?2. Activity程序的入口在哪兒?3. Activity就是界面嗎?界面文件什么類型,存放在哪兒?4. Activity如何調(diào)用一個(gè)界面?實(shí)現(xiàn)的語(yǔ)句是什么?5. 一個(gè)Activi
19、ty只能使用一個(gè)界面嗎?【返回】移動(dòng)平臺(tái)及其應(yīng)用Activity切換不同的界面步驟1:新建布局文件步驟2:修改菜單文件步驟3:為菜單項(xiàng)添加代碼【返回】移動(dòng)平臺(tái)及其應(yīng)用步驟1:新建布局文件n 在layout文件夾上,右鍵 - new - other - 選擇Android XML Layout File 移動(dòng)平臺(tái)及其應(yīng)用n 下一步,輸入布局文件名:testlayout,布局的根元素選擇:RelativeLayout移動(dòng)平臺(tái)及其應(yīng)用n 下一步,配置xml文檔屬性,可以不選擇,直接Finish。自動(dòng)生成的testlayout.xml文件移動(dòng)平臺(tái)及其應(yīng)用n 將一個(gè)ImageView組件拖放到界面上,并
20、設(shè)置屬性。設(shè)置要用的圖片問(wèn)題:圖片資源如何導(dǎo)入項(xiàng)目?移動(dòng)平臺(tái)及其應(yīng)用4.3.3 Toastn Toast 在應(yīng)用程序上浮動(dòng)顯示少量信息給用戶,它永遠(yuǎn)不會(huì)獲得焦點(diǎn),不影響用戶的輸入等操作。n 基本用法:n Toast toast=Toast.makeText( 參數(shù)1, 參數(shù)2, 參數(shù)3 ); toast.show(); 當(dāng)前的上下文環(huán)境要顯示的字符串顯示的時(shí)間長(zhǎng)短getApplicationContext()或用:某個(gè)Activity.thisToast.LENGTH_SHORT或 Toast.LENGTH_LONG顯示toast【返回】移動(dòng)平臺(tái)及其應(yīng)用【返回】移動(dòng)平臺(tái)及其應(yīng)用【返回】移動(dòng)平臺(tái)
21、及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用【返回】移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用【返回】移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用【返回】移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用【返回】package com.example.autocompletetext;import android.app.Activity;import android.os.Bundle;import android.widget.AutoCompleteTextView; /import android.widget.ArrayAdapter;public
22、 class MainActivity extends Activity private AutoCompleteTextView textView; private static final String autotext = new String China,Canada,India,Italy,Iran,Iraq;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); textV
23、iew = (AutoCompleteTextView )findViewById(R.id.autoCompleteTextView1); ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,autotext); textView.setAdapter(adapter);移動(dòng)平臺(tái)及其應(yīng)用4.4.3 菜單設(shè)計(jì)新菜單默認(rèn)的老菜單移動(dòng)平臺(tái)及其應(yīng)用MainActivity.java菜單代碼分析Activity創(chuàng)建Option類型菜單事件R.javagetMenuInflater(
24、)得到當(dāng)前Activity的MenuInflater對(duì)象,該對(duì)象提供inflate()方法用于設(shè)置菜單資源。參數(shù)menu可獲得當(dāng)前Activity的菜單對(duì)象R.menu.main是res/menu/main.xml文件在R.java中的映射移動(dòng)平臺(tái)及其應(yīng)用菜單資源main.xml代碼分析菜單項(xiàng)R.java兩個(gè)主要屬性菜單id、菜單titlemain.xml字符串資源文件res/values/string.xml菜單標(biāo)題是引用string/action_settings這個(gè)字符串資源,該資源在res/values/string.xml中定義,這里其實(shí)也可以直接賦值(見(jiàn)后)。+:表示要在R.jav
25、a中新建一個(gè)索引+id/action_settings:表示在R.id類中創(chuàng)建一個(gè)id值為action_settings的索引值移動(dòng)平臺(tái)及其應(yīng)用創(chuàng)建新菜單n 將原來(lái)的菜單項(xiàng)注釋掉 :n XML注釋: n 新建2個(gè)菜單項(xiàng):n n n 運(yùn)行結(jié)果:菜單id引用菜單title(直接賦值也可以)結(jié)束符不要掉MainActivity的新菜單【返回】移動(dòng)平臺(tái)及其應(yīng)用為菜單項(xiàng)添加功能n 在MainActivity.java中添加如下代碼:Overridepublic boolean onOptionsItemSelected(MenuItem item) Toast.makeText( MainActivit
26、y.this, 選中 + item.getTitle(), Toast.LENGTH_SHORT).show();switch ( item.getItemId() ) case R.id.menu_item1:setContentView(R.layout.activity_main);return true;case R.id.menu_item2:setContentView(R.layout.testlayout);return true;default:return false;菜單項(xiàng)選中項(xiàng)事件用Toast顯示信息根據(jù)菜單id做分支設(shè)置布局設(shè)置布局【返回】移動(dòng)平臺(tái)及其應(yīng)用4.5 狀態(tài)
27、欄消息通知 Notification移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用【返回】移動(dòng)平臺(tái)及其應(yīng)用4.6 文件存儲(chǔ)移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用public class FileDemo extends Activity private EditText SaveText; private Button SaveButton,LoadButton; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.m
28、ain); SaveText=(EditText)findViewById(R.id.phone_text); SaveButton = (Button)findViewById(R.id.SaveButton); LoadButton = (Button)findViewById(R.id.LoadButton); SaveButton.setOnClickListener(new ButtonListener(); LoadButton.setOnClickListener(new ButtonListener(); 主要代碼移動(dòng)平臺(tái)及其應(yīng)用/內(nèi)部類private class Button
29、Listener implements OnClickListener Override public void onClick(View v) switch (v.getId() case R.id.SaveButton: /保存數(shù)據(jù) String saveinfo = SaveText.getText().toString().trim(); FileOutputStream fos; try fos = openFileOutput(text, MODE_APPEND); / fos.write(saveinfo.getBytes(); / fos.close(); catch (Exc
30、eption e) e.printStackTrace(); Toast.makeText(FileDemo.this,數(shù)據(jù)保存成功,Toast.LENGTH_LONG).show(); break; 移動(dòng)平臺(tái)及其應(yīng)用case R.id.LoadButton: /讀取數(shù)據(jù) String get=; try /文件無(wú)擴(kuò)展名且為應(yīng)用程序私有 FileInputStream fis=openFileInput(text); byte buffer=new bytefis.available(); /available()返回一次可以讀取到的數(shù)據(jù)長(zhǎng)度 fis.read(buffer); get = n
31、ew String(buffer); catch (Exception e) e.printStackTrace(); Toast.makeText(FileDemo.this,保存的數(shù)據(jù)是:+get, Toast.LENGTH_LONG).show(); break; default: break; 【返回】移動(dòng)平臺(tái)及其應(yīng)用【返回】移動(dòng)平臺(tái)及其應(yīng)用4.7 使用SharedPreferences保存用戶信息移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用移動(dòng)平臺(tái)及其應(yīng)用n Activity之間的數(shù)據(jù)傳遞除了通過(guò)intent來(lái)傳遞外,還可以使用SharedPreferences來(lái)共享數(shù)據(jù)。n SharedPre
32、ferences是一種輕量級(jí)數(shù)據(jù)存儲(chǔ)方式,能夠?qū)崿F(xiàn)不同應(yīng)用程序間數(shù)據(jù)共享。 n SharedPreferences使用鍵值對(duì)(Key-Value)的方式把簡(jiǎn)單數(shù)據(jù)類型(boolean、int、float、long和String)存儲(chǔ)在應(yīng)用程序的私有目錄下自己定義的xml文件中。n 私有目錄是:/data/data/應(yīng)用程序包名/shared_prefs/移動(dòng)平臺(tái)及其應(yīng)用SharedPreferences編程(1)寫(xiě)入數(shù)據(jù): /獲得SharedPreferences對(duì)象(如果不存在則新建) SharedPreferences sp = getSharedPreferences(名稱, 訪問(wèn)模式)
33、; /獲得可編輯對(duì)象 SharedPreferences.Editor editor = sp.edit(); editor.putString(Name, wustzz); /put方法寫(xiě)數(shù)據(jù)(key-value) /一定要提交才能保存 mit(); SharedPreferences數(shù)據(jù)保存的XML文件名移動(dòng)平臺(tái)及其應(yīng)用SharedPreferences編程主要步驟(2)讀取數(shù)據(jù): /獲得SharedPreferences對(duì)象(如果不存在則新建) SharedPreferences sp = getSharedPreferences(名稱, 訪問(wèn)模式); String name = sp.
34、getString(Name, DefaultVal); /get方法讀數(shù)據(jù)第2個(gè)參數(shù):在無(wú)法獲取值的時(shí)候使用的缺省值移動(dòng)平臺(tái)及其應(yīng)用SharedPreferences支持三種訪問(wèn)模式n MODE_PRIVATE (=0,私有):僅創(chuàng)建SharedPreferences的程序有權(quán)限對(duì)其進(jìn)行讀取或?qū)懭?。n MODE_WORLD_READABLE (=1,全局讀):創(chuàng)建程序可以對(duì)其進(jìn)行讀取或?qū)懭耄渌鼞?yīng)用程序只具有讀取操作的權(quán)限,但沒(méi)有寫(xiě)入操作的權(quán)限。n MODE_WORLD_WRITEABLE (=2,全局寫(xiě)):所有程序都可以對(duì)其進(jìn)行寫(xiě)入操作,但沒(méi)有讀取操作的權(quán)限。移動(dòng)平臺(tái)及其應(yīng)用SharedP
35、references示例當(dāng)前Activity輸入3個(gè)值后保存,然后啟動(dòng)另一個(gè)Activity,將保存的值讀取出來(lái)顯示。移動(dòng)平臺(tái)及其應(yīng)用保存SharedPreferences數(shù)據(jù)final EditText et1=(EditText)findViewById(R.id.editText1);final EditText et2=(EditText)findViewById(R.id.editText2);final EditText et3=(EditText)findViewById(R.id.editText3);Button bt1= (Button)findViewById(R.id.
36、button1);bt1.setOnClickListener(new View.OnClickListener() Override public void onClick(View arg0) SharedPreferences sp = getSharedPreferences(MyInfo, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); SharedPreferences.Editor editor = sp.edit(); editor.putString(username, et1.getText().toString(); editor.pu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《夢(mèng)回繁華》-八年級(jí)語(yǔ)文上冊(cè)同步備課 教學(xué)設(shè)計(jì)(統(tǒng)編版)
- 江蘇省金壇市七年級(jí)體育與健康上冊(cè) 女生800長(zhǎng)跑測(cè)驗(yàn)教案
- 八年級(jí)生物上冊(cè) 5.1.3《軟體動(dòng)物和節(jié)肢動(dòng)物》教案2 (新版)新人教版
- 2024-2025學(xué)年高中語(yǔ)文 第2單元 置身詩(shī)境緣景明情 9 夢(mèng)游天姥吟留別教案 新人教版選修《中國(guó)古代詩(shī)歌散文欣賞》
- 2023三年級(jí)數(shù)學(xué)下冊(cè) 六 走進(jìn)天文館-年、月、日信息窗1 24時(shí)計(jì)時(shí)法教案 青島版六三制
- 2024-2025學(xué)年新教材高中政治 第一單元 探索世界與把握規(guī)律 1.3 科學(xué)的世界觀和方法論教案 部編版必修4
- 二年級(jí)語(yǔ)文下冊(cè) 課文1 4 鄧小平爺爺植樹(shù)第1課時(shí)教案 新人教版
- 2024-2025學(xué)年新教材高中生物 第五章 基因突變及其他變異 第3節(jié) 人類遺傳病教案 新人教版必修第二冊(cè)
- 出行帶小孩委托書(shū)范文
- 人教A版河北省唐山市2023-2024學(xué)年高一上學(xué)期期末模擬數(shù)學(xué)試題
- 上肢康復(fù)機(jī)器人說(shuō)明書(shū)
- 市政道路改造工程 投標(biāo)方案(技術(shù)標(biāo))
- (1.28)-法律的含義及歷史發(fā)展
- 專題二十八 當(dāng)代資本主義流通有哪些新變化
- 建筑給水鋼塑復(fù)合管管道工程技術(shù)規(guī)程2020
- 如何撰寫(xiě)和發(fā)表高水平的科研論文-good ppt
- 企業(yè)參保人員基本養(yǎng)老金申領(lǐng)表
- 測(cè)量血壓的正確方法-PPT
- 快速消費(fèi)品行業(yè)名詞釋義匯總
- ICH指南指導(dǎo)原則Q8(R2)藥品研發(fā)
- 2022玻璃棧道工程技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論