第一篇:Android手機(jī)登錄無線VPDN的方式
1、選擇系統(tǒng)設(shè)置,無線網(wǎng)絡(luò)設(shè)置
2、選擇移動(dòng)網(wǎng)絡(luò)設(shè)置
3、選擇接入點(diǎn)名稱
4、新增接入點(diǎn),以浙江國稅用戶為例,名稱處任意輸入,這里輸入“浙江國稅”。接入點(diǎn)為“#777”,輸入國稅的用戶名(帳號(hào))/密碼,其他全部默認(rèn)。選擇保存。
5、接入點(diǎn)選擇“浙江國稅”
6、打開“移動(dòng)網(wǎng)絡(luò)數(shù)據(jù)服務(wù)”
第二篇:手機(jī)軟件開發(fā)必學(xué)Android技術(shù)
手機(jī)軟件開發(fā)必學(xué)Android技術(shù)
席卷IT培訓(xùn)市場(chǎng),開發(fā)因其領(lǐng)域新,覆蓋面廣,而受到廣大應(yīng)屆畢業(yè)生的關(guān)注?,F(xiàn)在大學(xué)生空有一張文憑,就業(yè)形勢(shì)卻頗為緊張,相反,Android開發(fā)的職位空缺卻相當(dāng)大,所以很多大學(xué)生看準(zhǔn)這塊“肥肉”,紛紛投身Android培訓(xùn),希望通過系統(tǒng)培訓(xùn)解決當(dāng)前就業(yè)難,薪水低的問題。
學(xué)習(xí)Android開發(fā),先要了解主要開發(fā)什么。其實(shí)主要是針對(duì)Android平臺(tái)開發(fā)應(yīng)用軟件和游戲軟件。應(yīng)用軟件涉及種類廣泛,如辦公工具、通信工具、視頻播放工具、閱讀器等,在智能手機(jī)普及的今天,手機(jī)用戶對(duì)于各種應(yīng)用軟件的需求越來越高。這個(gè)時(shí)候不但需要大量的Android人才儲(chǔ)備,還對(duì)其技術(shù)有了更高的要求。而手機(jī)游戲是目前最受年輕人喜愛的,趣味性更強(qiáng),薪水也樂觀。如此耀眼的舞臺(tái),自然給了年輕人更多發(fā)揮的空間,但這里要注意,學(xué)習(xí)Android開發(fā),需要對(duì)軟件開發(fā)感興趣,具備一定的Java基礎(chǔ)。
甲骨文盈佳科技通過一個(gè)多月的零基礎(chǔ)階段教學(xué),讓學(xué)員掌握扎實(shí)的編程功底,課程內(nèi)容包含Java開發(fā)環(huán)境、編程語言基礎(chǔ)、面向?qū)ο笏枷搿⒃O(shè)計(jì)模式、數(shù)據(jù)結(jié)構(gòu)等。而在學(xué)員掌握基本的Android開發(fā)能力后,甲骨文盈佳科技第三階段教學(xué),會(huì)重點(diǎn)講授Android游戲開發(fā),利用四周的時(shí)間,使學(xué)員可以掌握基于Cocos2d框架進(jìn)行游戲開發(fā)的能力。
其實(shí)大學(xué)生能有足夠遠(yuǎn)見去學(xué)一門技術(shù),說明能夠認(rèn)識(shí)自身問題。選擇Android開發(fā)這個(gè)新領(lǐng)域,發(fā)揮自身學(xué)習(xí)能力強(qiáng)的優(yōu)勢(shì),在培訓(xùn)中鍛煉自己實(shí)際操作的能力,彌補(bǔ)動(dòng)手能力弱,無項(xiàng)目經(jīng)驗(yàn)的弱點(diǎn),自然可以從根本上解決大學(xué)生就業(yè)問題?,F(xiàn)在移動(dòng)互聯(lián)網(wǎng)屬于朝陽產(chǎn)業(yè),正敞開懷抱吸納Android開發(fā)人才。今天選擇學(xué)習(xí)Android開發(fā),就是為今后的成功打下堅(jiān)實(shí)的基石。
第三篇:手機(jī)Android系統(tǒng)常用控件總結(jié)
找工作,上長沙英才網(wǎng)
手機(jī)Android系統(tǒng)常用控件總結(jié)
Notepad++編寫 可以負(fù)責(zé)粘貼到其中去 看得更清楚。(內(nèi)容包括了Android中的大部分常用控件及其事件的監(jiān)聽)第一章
1.1 Android中src文件夾包含項(xiàng)目的所有包及其資源文件,res文件夾包含了項(xiàng)目中所有的資源。比如:程序圖標(biāo)(drawable),布局文件(layout),常量(value),音頻文件(raw)R.java是在創(chuàng)建項(xiàng)目是自動(dòng)生成的只讀文件,不可更改此文件。R文件其作用:是定義項(xiàng)目中所有資源的索引文件。
1.2 AndroidManfest.xml 如下:
package=“Android.Summary” //引用程序包名 android:versionCode=“1” android:versionName=“1.0”> 找工作,上長沙英才網(wǎng)
1.3 String.xml如下:
Resources r = this.getContext().getResources();//通過Context的getResource()實(shí)例化一個(gè)Resources對(duì)象
String app_name =((String)r.getString(R.string.app_name));//然后通過getString()方法取得指定的索引的字符串。項(xiàng)目中所有常量都可以在String.xml文件中定義
String hello =((String)r.getString(R.string.hello));
1.4 main.xml如下:
找工作,上長沙英才網(wǎng)
android:orientation=“vertical” //版面配置的方式。此為自上到下為垂直配置,“horizontal”為水平配置 android:layout_width=“fill_parent” //定義當(dāng)前視圖在屏幕上所占的寬度,“fill_parent”為填充整個(gè)屏幕寬度 /*android:layout_weight=“50”*/ //用于給一個(gè)布局中多個(gè)視圖的重要度賦值 android:layout_height=“fill_parent” //定義當(dāng)前視圖在屏幕上所占的高度,...........................高度 > android:text=“@string/hello” //在視圖上顯示的內(nèi)容,此處引用了@String中的hello字符串 />
1.5 src下的java 如下: package Android.Summary;
import android.app.Activity;import android.os.Bundle;
public class SummaryActivity extends Activity { //繼承自Activity /** Called when the activity is first created.*/ @Override
找工作,上長沙英才網(wǎng)
public void onCreate(Bundle savedInstanceState){ //重寫onCreate()方法
super.onCreate(savedInstanceState);setContentView(R.layout.main);//設(shè)置要顯示的布局 } } 第二章
2.1 Android應(yīng)用程序由四個(gè)模塊組成:Activity,Service,Intent,ContentProvider(注意:一個(gè)應(yīng)用程序不一定包含全部的四個(gè)模塊).在使用時(shí)必須在AandroidManfest中進(jìn)行聲明。
Activity可以理解為用戶看到屏幕,主要用于處理應(yīng)用程序的整體性工作。如: a.監(jiān)聽系統(tǒng)事件,觸屏事件,為用戶顯示指定的View,啟動(dòng)其他Activity等。b.所有應(yīng)用的Activity都繼承于android.app.Activity,該類是Android提供的基層類。
c.一個(gè)Activity通常就是一個(gè)單獨(dú)的屏幕。d.每一個(gè)活動(dòng)都被實(shí)現(xiàn)為一個(gè)獨(dú)立的類。e.大多數(shù)的應(yīng)用程序都是由多個(gè)Activity組成。
Intent Aandroid中主要用Intent類實(shí)現(xiàn)從一個(gè)Activity跳轉(zhuǎn)到另一個(gè)Activity。在Intent的描述結(jié)構(gòu)中,有兩個(gè)重要的部分:動(dòng)作和對(duì)應(yīng)的數(shù)據(jù)。
典型的動(dòng)作有MAIN,VIEW,PICK,EDIT.而動(dòng)作對(duì)應(yīng)的數(shù)據(jù)則以URI的形式表示。例如:要查一個(gè)人的聯(lián)系方式,需要?jiǎng)?chuàng)建一個(gè)動(dòng)作類型View的Intent ,以及一個(gè)表示這個(gè)人的URI.Intent的使用:
button1.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ Intent intent = new Intent();//創(chuàng)建一個(gè)Intent對(duì)象
intent.setClass(Activity01.this,Activity02.class);//指明要啟動(dòng)的另一Activity02 startActivity(intent);//啟動(dòng)一個(gè)新的Activity
找工作,上長沙英才網(wǎng)
Activity01.this.finish();//關(guān)閉當(dāng)前Activity01 } });這里需要注意在Android中對(duì)新啟動(dòng)的Activity進(jìn)行聲明。聲明方式:
IntentReceiver 如果希望Android應(yīng)用能夠?qū)ν獠渴录ㄈ珉娫挻蛉霑r(shí),數(shù)據(jù)網(wǎng)絡(luò)可用時(shí),)做出響應(yīng),可用使用IntentReceiver.雖然IntentReceiver在如上事件發(fā)生
時(shí)會(huì)使用NotificationManager通知用戶,但它并不能生產(chǎn)UI。IntentReceiver可以在AndroidManifest.xml中注冊(cè),也可在代碼中使用Context.registerReceiver 進(jìn)行注冊(cè)。當(dāng)IntentReceiver被觸發(fā)時(shí),系統(tǒng)會(huì)在需要的時(shí)候啟動(dòng)應(yīng)用。各種應(yīng)用還可以通過ContentReceiver()將他們自己的IntentReceiver廣播出去。???????
Content Provider 作用:主要用于不同應(yīng)用程序中的數(shù)據(jù)的傳遞。Content Provider 是一個(gè)特殊的存儲(chǔ)數(shù)據(jù)的類型。Android自身提供現(xiàn)成的Content Provider:Contacts ,Browser,CallLog,Settings,MediaStore 應(yīng)用可用通過唯一的ContentResolver界面來使用具體的Conten Provider,然后可以用ContentResolver提供的方法來使用你需要的Content Provider 其中,ContentResolver提供的方法有query(),insert(),update()等。URI----String形式的Content Provider的完整路徑。
下面這個(gè)這個(gè)例子通過ContentProvider獲取電話本中的數(shù)據(jù),然后顯示到TextView中去。
public class Activity01 extends Activity{ public void onCreate(Bundle savedInstanceState){
找工作,上長沙英才網(wǎng)
TextView textView = new TextView(this);//得到TextView對(duì)象 String string = “";super.onCreate(savedInstanceState);
ContentResolver resolver = getContentResolver();//得到ContentResolver對(duì)象 Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);//取得電話本中開始一項(xiàng)的光標(biāo),通過query方法查詢出符合標(biāo)準(zhǔn)的電話本記錄 //向下移動(dòng)光標(biāo)
while(cursor.moveToNext()){ //取得聯(lián)系人名字
int name_index = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);String name = cursor.getString(name_index);//取得電話號(hào)碼
int number_index = cursor.getColumnIndex(PhoneLookup.NUMBER);String number = cursor.getString(number_index);
string +=(name+”:“+number+”n“);} cursor.close();textView.setText(string);//設(shè)置TextView顯示的內(nèi)容
setContentView(textView);//顯示到屏幕上 其實(shí)TextView也是View的一種 } } 注意:在使用這些模塊中用到了讀取聯(lián)系人的API,所以必須在AndroidManifest.xml中聲明
聲明方式為:
找工作,上長沙英才網(wǎng)
Service 后臺(tái)服務(wù),沒有界面
啟動(dòng)service方法: a.Context.startService()b.Context.bindService()//與上一種方法不同處 如果這個(gè)Service沒有處于啟動(dòng)狀態(tài),則將其啟動(dòng)
下面這個(gè)例子以Activity中的倆個(gè)控件來控制播放一首Mp3.(例中:需要在res文件夾中創(chuàng)建一個(gè)raw文件夾 然后放入一首MP3)
public class Activity01 extends Activity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);
//從main.xml布局中獲得Button對(duì)象
Button button_start =(Button)findViewById(R.id.start);Button button_stop =(Button)findViewById(R.id.stop);//設(shè)置按鈕(Button)監(jiān)聽
button_start.setOnClickListener(start);button_stop.setOnClickListener(stop);} //開始按鈕
private OnClickListener start = new OnClickListener(){ public void onClick(View v){ //開啟Service startService(new Intent(”com.yarin.Android.MUSIC“));} };//停止按鈕
找工作,上長沙英才網(wǎng)
private OnClickListener stop = new OnClickListener(){ public void onClick(View v){ //停止Service stopService(new Intent(”com.yarin.Android.MUSIC“));} };}
public class MusicService extends Service{ //MediaPlayer對(duì)象
private MediaPlayer player;
public IBinder onBind(Intent arg0){ return null;} public void onStart(Intent intent, int startId){ super.onStart(intent, startId);//這里可以理解為裝載音樂文件
player = MediaPlayer.create(this, R.raw.test);//開始播放 player.start();}
public void onDestroy(){ super.onDestroy();//停止音樂-停止Service player.stop();} }
AndroidManifest.xml文件中
找工作,上長沙英才網(wǎng)
2.2 Aandrod的生命周期
public class Activity02 extends Activity{ private static final String TAG = ”Activity02“;
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main2);Log.v(TAG, ”onCreate“);} public void onStart(){ super.onStart();Log.v(TAG, ”onStart“);} public void onResume(){ super.onResume();Log.v(TAG, ”onResume“);} public void onPause(){ super.onPause();Log.v(TAG, ”onPause“);} public void onStop(){ super.onStop();Log.v(TAG, ”onStop“);
找工作,上長沙英才網(wǎng)
} public void onDestroy(){ super.onDestroy();Log.v(TAG, ”onDestroy“);} public void onRestart(){ super.onRestart();Log.v(TAG, ”onReStart“);} } 這些方法都是系統(tǒng)自動(dòng)調(diào)用的。
第三章 3.1 事件處理
* 控件事件通過設(shè)置其控件的監(jiān)聽器來監(jiān)聽并處理事件 * 按鍵按下事件:通過重寫onKeyDown方法 * 按鍵彈起事件:通過重寫onKeyUp方法 * 觸筆點(diǎn)擊事件:通過實(shí)現(xiàn)onTouchEvent方法 * 示例中使用了Toast控件:
* Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
public class Activity01 extends Activity{
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);//獲得Button對(duì)象
Button button_ok =(Button)findViewById(R.id.ok);
找工作,上長沙英才網(wǎng)
button_ok.setOnClickListener(new Button.OnClickListener(){------------------------//設(shè)置Button控件監(jiān)聽器
public void onClick(View v){ //這里處理事件
DisplayToast(”點(diǎn)擊了OK按鈕“);} });}
/* 按鍵按下所觸發(fā)的事件*/ public boolean onKeyDown(int keyCode, KeyEvent event){ switch(keyCode){ case KeyEvent.KEYCODE_DPAD_CENTER: DisplayToast(”按下:中鍵“);break;case KeyEvent.KEYCODE_DPAD_UP: DisplayToast(”按下:上方向鍵“);break;case KeyEvent.KEYCODE_DPAD_DOWN: DisplayToast(”按下:下方向鍵“);break;case KeyEvent.KEYCODE_DPAD_LEFT: DisplayToast(”按下:左方向鍵“);break;case KeyEvent.KEYCODE_DPAD_RIGHT: DisplayToast(”按下:右方向鍵“);break;} return super.onKeyDown(keyCode, event);}
找工作,上長沙英才網(wǎng)
/* 按鍵彈起所觸發(fā)的事件*/ public boolean onKeyUp(int keyCode, KeyEvent event){ switch(keyCode){ case KeyEvent.KEYCODE_DPAD_CENTER: DisplayToast(”彈起:中鍵“);break;case KeyEvent.KEYCODE_DPAD_UP: DisplayToast(”彈起:上方向鍵“);break;case KeyEvent.KEYCODE_DPAD_DOWN: DisplayToast(”彈起:下方向鍵“);break;case KeyEvent.KEYCODE_DPAD_LEFT: DisplayToast(”彈起:左方向鍵“);break;case KeyEvent.KEYCODE_DPAD_RIGHT: DisplayToast(”彈起:右方向鍵“);break;} return super.onKeyUp(keyCode, event);} //用于響應(yīng)按鍵重復(fù)點(diǎn)擊,官方API指出onKeyMultiple方法總是返回false,即它沒有handle,因此必須重寫才能實(shí)現(xiàn)-------------------此方法沒用過具體情況怎么樣不是很清楚?
public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event){
return super.onKeyMultiple(keyCode, repeatCount, event);}
/* 觸筆事件*/
找工作,上長沙英才網(wǎng)
public boolean onTouchEvent(MotionEvent event){ int iAction = event.getAction();//利用getAction得到所執(zhí)行的動(dòng)作 if(iAction == MotionEvent.ACTION_CANCEL || iAction == MotionEvent.ACTION_DOWN || iAction == MotionEvent.ACTION_MOVE){ return false;} //得到觸筆點(diǎn)擊的位置 int x =(int)event.getX();int y =(int)event.getY();//將獲得的坐標(biāo)轉(zhuǎn)成String類型的方法 DisplayToast(”觸筆點(diǎn)擊坐標(biāo):(“+Integer.toString(x)+”,“+Integer.toString(y)+”)“);
return super.onTouchEvent(event);}
/* 顯示Toast */ public void DisplayToast(String str){ Toast.makeText(this, str, Toast.LENGTH_SHORT).show();} } 我們分析了一些常用事件處理方式。每一個(gè)鍵都對(duì)應(yīng)一個(gè)鍵值。當(dāng)然也可根據(jù)需要來改變一些鍵的功能,需要我們自己構(gòu)建KeyEvent對(duì)象------------------有待進(jìn)一步學(xué)習(xí)
構(gòu)造KeyEvent對(duì)象的幾種方法: KeyEvent(int action,int code);KeyEvent(long DownTime,long EventTime,int action,int code,int repeat);KeyEvent(long DownTime,long EventTime,int action,int code,int repeat,int metState);
找工作,上長沙英才網(wǎng)
KeyEvent(long DownTime,long EventTime,int action,int code,int repeat,int metState,int device,int scancode);KeyEvent(long DownTime,long EventTime,int action,int code,int repeat,int metState,int device,int scancode,int flags);KeyEvent(KeyEvent origEvent,long EventTime,int newRepart);例:
public class Activity01 extends Activity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);} public boolean onKeyDown(int keyCode, KeyEvent event){ //這里構(gòu)建KeyEvent對(duì)象,其功能為返回鍵的功能 //因此我們按任意鍵都會(huì)執(zhí)行返回鍵功能
KeyEvent key = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
//這里傳入的參數(shù)就是我們自己構(gòu)建的KeyEvent對(duì)象key return super.onKeyDown(key.getKeyCode(), key);} } 3.2 常用控件 Button xml設(shè)計(jì)
代碼設(shè)計(jì)Button button = new Button(this);
找工作,上長沙英才網(wǎng)
button.setText(”我是Button“);button.setWidth(123);//設(shè)置寬度 button.setHeight(123);//設(shè)置高度
button.setTextColor(Color.BLUE);//設(shè)置文字顏色 button.setTextSize(123);//設(shè)置字體大小
button.setBackgroundColor(Color.BLUE);//設(shè)置控件背景色
監(jiān)聽器
button.setOnClickListener(new Button.OnClickListener(){//設(shè)置按鈕的事件監(jiān)聽
public void onClick(View v){ //處理按鈕事件產(chǎn)生一個(gè)Toast.利用button.getText()得到按鈕顯示的內(nèi)容
Toast toast = Toast.makeText(Activity01.this, ”你點(diǎn)擊了““+button.getText()+””按鈕!“, Toast.LENGTH_LONG);//設(shè)置toast顯示的位置
toast.setGravity(Gravity.TOP, 0, 150);//顯示該Toast toast.show();} });-TextView 一個(gè)用來顯示文本的控件 xml設(shè)計(jì) 找工作,上長沙英才網(wǎng) android:text=”你好“/> android:paddingLeft=”50px“ android:paddingTop=”5px“ android:paddingBottom=”5px“ android:textSize=”30sp“ android:singleLine=”true“ android:layout_below=”@id/imageView_handler“//在什么下 android:gravity =”left“ //用于設(shè)置View中內(nèi)容相對(duì)于View組件的對(duì)齊方式,android:layout_gravity//用于設(shè)置View組件相對(duì)于Container的對(duì)齊方式。 android:paddingLeft=”30px“ // 按鈕上設(shè)置的內(nèi)容離按鈕左邊邊界30個(gè)像素 android:layout_marginLeft=”30px“ //整個(gè)按鈕離左邊設(shè)置的內(nèi)容30個(gè)像素 android:layout_weight=”1“//控件權(quán)重 即占的比例 默認(rèn)值為0 android:gravity=”center_horizontal“//水平居中 android:padding=”3dip“ 代碼設(shè)計(jì)TextView textView = new TextView(this);//聲明對(duì)象 textView.setTextColor(Color.RED);//設(shè)置字體顏色 textView.setTextSize(20);//設(shè)置字體大小 textView.setBackgroundColor(Color.BLUE);//控件背景色 textView.setText(”你好“)//顯示的文字 textView.setHeight textView.setWidth textView.setVisibility(GONE/VISIBLE);//設(shè)置為不可見/可見 textView.setGravity(Gravity.CENTER);//設(shè)置文字權(quán)重 找工作,上長沙英才網(wǎng) 監(jiān)聽器TextView textView = new TextView(this);//得到對(duì)象 textview.setOnClickListener(new TextView.OnClickListener(){------------TextView監(jiān)聽器 public void onClick(View v){ } });---ImageButton 帶圖標(biāo)的按鈕 xml設(shè)計(jì) 代碼中設(shè)計(jì) imageButton.setImageDrawable(getResources().getDrawable(R.drawable.image2));//在代碼中設(shè)計(jì)使用的圖片(得到對(duì)象后) 監(jiān)聽器 imageButton.setOnClickListener(new Button.OnClickListener(){--------------ImageButton監(jiān)聽器 @Override public void onClick(View v){ //創(chuàng)建對(duì)話框 Dialog dialog = new AlertDialog.Builder(ImageButton_Dialog.this) 找工作,上長沙英才網(wǎng) .setTitle(”ImageButton2“).setMessage(”跳轉(zhuǎn)到系統(tǒng)圖片“).setPositiveButton(”確定“, new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which){ // TODO Auto-generated method stub imageButton2.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_action_call));} }).create();dialog.show();} });---EditText xml設(shè)計(jì) 代碼設(shè)計(jì)EditText editText = new EditText(this);//得到EditText對(duì)象 editText.setTextSize(20);//設(shè)置字體大小 找工作,上長沙英才網(wǎng) editText.setHint(”請(qǐng)輸入賬號(hào)“);//設(shè)置當(dāng)m_EditText中為空時(shí)提示的內(nèi)容 監(jiān)聽器 editText.setOnKeyListener(new EditText.OnKeyListener(){----------EditText監(jiān)聽器 @Override public boolean onKey(View arg0, int arg1, KeyEvent arg2){ // 得到文字,將其顯示到TextView中 m_TextView.setText(”文本框中內(nèi)容是:“ + m_EditText.getText().toString());return false;} });--------------------CheckBox 多項(xiàng)選擇 需要對(duì)沒有按鈕設(shè)置監(jiān)聽器 xml設(shè)計(jì) checkBox1.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener(){//對(duì)每個(gè)選項(xiàng)設(shè)置事件監(jiān)聽-------------------CheckBox監(jiān)聽器 @Override 找工作,上長沙英才網(wǎng) public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){ if(m_CheckBox1.isChecked()){ DisplayToast(”你選擇了:“+m_CheckBox1.getText());} } });----------------------Spinner 下拉列表 下面一個(gè)例子將可選內(nèi)容通過ArrayAdapter和下拉列表連接起來。設(shè)置監(jiān)聽器 通過setVisibility方法設(shè)置當(dāng)前顯示項(xiàng) main.xml 找工作,上長沙英才網(wǎng) /> public class Activity01 extends Activity{ private static final String[] string = { ”O(jiān)型“, ”A型“, ”B型“, ”AB型“, ”其他“ }; private TextView m_TextView;private Spinner m_Spinner;private ArrayAdapter @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main); m_TextView =(TextView)findViewById(R.id.TextView1);m_Spinner =(Spinner)findViewById(R.id.Spinner1); //將可選內(nèi)容與ArrayAdapter連接 adapter = new ArrayAdapter //設(shè)置下拉列表的風(fēng)格 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //將adapter添加到m_Spinner中 m_Spinner.setAdapter(adapter); //添加Spinner事件監(jiān)聽 找工作,上長沙英才網(wǎng) m_Spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){--------------------------Spinner監(jiān)聽器 @Override public void onItemSelected(AdapterView> arg0, View arg1, int arg2, long arg3){ m_TextView.setText(”你的血型是:“ + string[arg2]);//設(shè)置顯示當(dāng)前選擇的項(xiàng) arg0.setVisibility(View.VISIBLE);} @Override public void onNothingSelected(AdapterView> arg0){ // TODO Auto-generated method stub });} } }---------RadioGroup , RadioButton 單選選擇控件 一個(gè)單選選擇由兩部分組成,分別是前面的選擇按鈕和后面的內(nèi)容。按鈕通過RadioButton來實(shí)現(xiàn),答案通過RadioGroup來實(shí)現(xiàn) 如果確定是選擇哪一項(xiàng)那就要設(shè)置監(jiān)聽器setOnCheckedChangeListener.下面有一例子:本例中使用到了String.xml文件來定義常量。string.xml 找工作,上長沙英才網(wǎng) main.xml 找工作,上長沙英才網(wǎng) android:layout_width=”wrap_content“ android:layout_height=”wrap_content“ android:text=”@string/RadioButton1“ /> public class Activity01 extends Activity{ TextView m_TextView;RadioGroup m_RadioGroup;RadioButton m_Radio1, m_Radio2, m_Radio3, m_Radio4; @Override 找工作,上長沙英才網(wǎng) public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main); m_RadioGroup =(RadioGroup)findViewById(R.id.RadioGroup01);//獲得RadioGroup對(duì)象 m_Radio1 =(RadioButton)findViewById(R.id.RadioButton1);//獲得4個(gè)RadioButton對(duì)象 m_Radio2 =(RadioButton)findViewById(R.id.RadioButton2);m_Radio3 =(RadioButton)findViewById(R.id.RadioButton3);m_Radio4 =(RadioButton)findViewById(R.id.RadioButton4); /* 設(shè)置事件監(jiān)聽 */ m_RadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){---------------------------RadioGroup監(jiān)聽器 @Override public void onCheckedChanged(RadioGroup group, int checkedId){ if(checkedId == m_Radio2.getId()){ DisplayToast(”正確答案:“ + m_Radio2.getText()+ ”,恭喜你,回答正確!“);}else{ DisplayToast(”請(qǐng)注意,回答錯(cuò)誤!“);} } });} public void DisplayToast(String str)//顯示Toast{ Toast toast = Toast.makeText(this, str, Toast.LENGTH_LONG);//設(shè)置toast顯示的位置 找工作,上長沙英才網(wǎng) toast.setGravity(Gravity.TOP, 0, 220);//顯示該Toast toast.show();} }--------------AutoCompletTextView 和MultiAutoCompleteTextView 作用:自動(dòng)提示 下面例中用到了ArrayAdapter autoCompletTextView.xml //如何實(shí)現(xiàn)如果輸入的字符不在其范圍內(nèi)的也能得到提示 是繼承TextWatcher? 找工作,上長沙英才網(wǎng) public class Control_Auto extends Activity { //implements TextWatcher{} public TextView textView_auto; private static final String[] string ={”ni hao“,”ni hao “,”ni hao ma“,”ni zheng de hao ma“,”nshis“}; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.autocompletetextview); //將可選內(nèi)容與適配器ArrayAdapter連接 ArrayAdapter MultiAutoCompleteTextView multiAutoCompletTextView =(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView);AutoCompleteTextView autoCompleteTextView =(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView); autoCompleteTextView.setAdapter(adapter);//將adapter添加到AutoCompletTextView中去 multiAutoCompletTextView.setAdapter(adapter);//將adapter添加到MultAutoCompleteTextView中去 multiAutoCompletTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());} } 找工作,上長沙英才網(wǎng) /* //autoCompleteTextView.addTextChangedListener(this);---此為設(shè)置監(jiān)聽? * 例子中沒有涉及到的屬性(可在布局文件中設(shè)置): AutoCompleteTextView是EditText的子類,所以你可以對(duì)它的對(duì)象進(jìn)行諸如外觀/字體/顏色等屬性值的設(shè)置。 completionThreshold:它的值決定了你在AutoCompleteTextView至少輸入幾個(gè)字符,它才會(huì)具有自動(dòng)提示的功能。另,默認(rèn)最多提示20條。 dropDownAnchor:它的值是一個(gè)View的ID,指定后,AutoCompleteTextView會(huì)在這個(gè)View下彈出自動(dòng)提示。 dropDownSelector:應(yīng)該是設(shè)置自動(dòng)提示的背景色之類的。 dropDownWidth:設(shè)置自動(dòng)提示列表的寬度。 你可以通過setAdapter()來給AutoCompleteTextView添加一個(gè)包含候選值列表的適配器(adapter)。--------此處沒實(shí)現(xiàn)過? 然而,由于用戶可以輸入一些不在候選值列表的數(shù)據(jù),AutoCompleteTextView不支 持selection listener。不過,你可以注冊(cè)一個(gè)TextWacther用于當(dāng)用戶輸入文本發(fā)生變化時(shí)發(fā)出通知。 -------------------------DatePicker,TimePicker 日期和時(shí)間 下例中首先需要在布局文件中定義DatePicker和TimePicker,然后通過Canlendar類獲得系統(tǒng)時(shí)間,接著通過init方法將日期傳給DatePicker, 并設(shè)置OnDateChangedListener來監(jiān)聽日期改變,當(dāng)時(shí)間被改變時(shí)需要設(shè)置setOnTimeChangedListener監(jiān)聽來設(shè)置時(shí)間。datepicker_timepicker.xml 找工作,上長沙英才網(wǎng) > 找工作,上長沙英才網(wǎng) public class Date_Time extends Activity{//如何實(shí)現(xiàn)日期隨系統(tǒng)不斷變化?要聯(lián)網(wǎng)才能實(shí)現(xiàn)?如何變換DatePicker和TimePicker樣式(如顏色,圖片等)? Calendar calendar;TextView textView_date_time;Button button_date_time1;Button button_date_time2;DatePicker datePicker;TimePicker timePicker;public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.datepicker_timepicker);calendar = Calendar.getInstance();//得到日歷對(duì)象 textView_date_time =(TextView)findViewById(R.id.textView_date_time1);button_date_time1 =(Button)findViewById(R.id.button_date_time1);button_date_time2 =(Button)findViewById(R.id.button_date_time2);datePicker =(DatePicker)findViewById(R.id.datePicker);timePicker =(TimePicker)findViewById(R.id.timerPicker); button_date_time1.setWidth(50);button_date_time1.setHeight(60);button_date_time1.setTextColor(Color.BLUE); timePicker.setIs24HourView(true);//設(shè)置為24小時(shí)制 //將日歷初始化為當(dāng)前系統(tǒng)日期,并設(shè)置監(jiān)聽器 datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),-------------DatePicker監(jiān)聽器 找工作,上長沙英才網(wǎng) calendar.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener(){//OnDateChangedListener監(jiān)聽日期的變化 @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth){ //設(shè)置日期 calendar.set(1987,10,15);} }); timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener(){------------TimePicker監(jiān)聽器 @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute){ //設(shè)置時(shí)間 //calendar.set(1987,10,29,23,23,23);//年 月 日 小時(shí) 分鐘 秒 textView_date_time.setText(”當(dāng)前時(shí)間:“+hourOfDay+” : “+minute);} }); button_date_time1.setOnClickListener(new Button.OnClickListener(){//日期的監(jiān)聽---------------------------Button控件中設(shè)置DatePicker監(jiān)聽器 找工作,上長沙英才網(wǎng) @Override public void onClick(View v){ new DatePickerDialog(Date_Time.this,new DatePickerDialog.OnDateSetListener(){ @Override public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth){ //設(shè)置日歷 textView_date_time.setText(”農(nóng)歷“+year+” 年“+monthOfYear+” 月“+dayOfMonth+” 日“);} },calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH)).show();} }); button_date_time2.setOnClickListener(new Button.OnClickListener(){//時(shí)間的監(jiān)聽器----------------------------Button控件中設(shè)置TimePicker監(jiān)聽器 @Override public void onClick(View v){new TimePickerDialog(Date_Time.this, new TimePickerDialog.OnTimeSetListener(){ @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute){ //設(shè)置時(shí)間 找工作,上長沙英才網(wǎng) textView_date_time.setText(”北京時(shí)間:“+hourOfDay+” : “+minute);} },calendar.get(Calendar.HOUR_OF_DAY),calendar.get(Calendar.MINUTE),true).show();}});} } ---------------Menu 操作應(yīng)用程序的菜單選項(xiàng) 第一個(gè)例子:通過XML文件來實(shí)現(xiàn) menu_com.xml
public class Menu_Xml extends Activity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.此為所以顯示的界面id);} public boolean onCreateOptionsMenu(Menu menu){//創(chuàng)建menu MenuInflater inflater = getMenuInflater();//設(shè)置menu界面
inflater.inflate(R.layout.menu_com, menu);
找工作,上長沙英才網(wǎng)
return true;} public boolean onOptionsItemSelected(MenuItem item){//處理菜單事件 switch(item.getItemId()){ case R.id.about: Menu_Xml.this.finish();case R.id.skip: Intent intent = new Intent();intent.setClass(Menu_Xml.this, Menu_add.class);//跳轉(zhuǎn)到Menu_add中去
startActivity(intent);Menu_Xml.this.finish();} return true;} } =============== 第二個(gè)例子:在代碼中生成Menu 此例中包含倆個(gè)方法 注意區(qū)分注釋掉的為另一種增加Menu的方法
public class Menu_add extends Activity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.toast);} public boolean onCreateOptionsMenu(Menu menu){//創(chuàng)立menu /*為Menu添加內(nèi)容參數(shù):Menu.add()方法第一個(gè)參數(shù)表示給這個(gè)新增的菜單項(xiàng)分配一個(gè)分組號(hào);
* 第二個(gè)參數(shù)表示給這個(gè)新增的菜單項(xiàng)分配一個(gè)唯一標(biāo)識(shí)id;第三個(gè)參數(shù)為菜單項(xiàng)的序號(hào);
找工作,上長沙英才網(wǎng)
* 第四個(gè)參數(shù)為菜單項(xiàng)的標(biāo)題。
我們可以通過調(diào)用Menu.setItemShown()或者M(jìn)enu.setGroupShown()方法來顯示或隱藏一些菜單項(xiàng)。
這里要注意的一個(gè)地方是:菜單項(xiàng)的顯示順序是按代碼中添加的順序來的,也就是說Menu.add()方法
只能在菜單的最后面新增一個(gè)菜單項(xiàng)。另外,第一個(gè)參數(shù)的分組標(biāo)識(shí),不會(huì)改變菜單項(xiàng)的顯示順序。
方法一:
//menu.add(0,0,0,R.string.menu1);方法一 //menu.add(0,1,1,R.string.menu2);方法二:
SubMenu subMenu = menu.addSubMenu(1, 1, 2, ”選項(xiàng)“);//此方法和menu方法類似
subMenu.add(13,13,13, ”到Content_Menu“);subMenu.add(13,24,24,”到Menu_Xml“);
return true;} public boolean onOptionsItemSelected(MenuItem item){//處理Menu事件 switch(item.getItemId()){//getItemId()得到菜單項(xiàng)的ID,即上面的第二個(gè)參數(shù) case 13: Intent intent1 = new Intent();intent1.setClass(Menu_add.this, Context_Menu.class);startActivity(intent1);Menu_add.this.finish();case 23: Intent intent = new Intent();intent.setClass(Menu_add.this, Menu_Xml.class);//跳轉(zhuǎn)到其他界面中去
找工作,上長沙英才網(wǎng)
startActivity(intent);Menu_add.this.finish();break;} return true;} } ============== 第三個(gè)例子:Context Menu的創(chuàng)建:
概述:Android 的上下文菜單類似于PC 上的右鍵菜單。當(dāng)為一個(gè)視圖注冊(cè)了上下文菜單之后,長按(2 秒左右)這個(gè)視圖對(duì)象就會(huì)彈出一個(gè)浮動(dòng)菜單,即上下文菜單。任何視圖都可以
注冊(cè)上下文菜單,不過,最常見的是用于列表視圖ListView的item。
注意:Android 的上下文菜單不支持圖標(biāo)或快捷鍵。
創(chuàng)建一個(gè)上下文菜單的步驟:
1.覆蓋Activity 的onCreateContenxtMenu()方法,調(diào)用Menu 的add 方法添加菜單項(xiàng)(MenuItem)。
2.覆蓋Activity 的onContextItemSelected()方法,響應(yīng)上下文菜單菜單項(xiàng)的單擊事件。
3.調(diào)用registerForContextMenu()方法,為視圖注冊(cè)上下文菜單。menu_com2.xml
找工作,上長沙英才網(wǎng)
public class Context_Menu extends Activity{ public TextView textView_context_Menu;public Button buttont_context_Menu;
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.menu_com2);textView_context_Menu =(TextView)findViewById(R.id.textView_context_Menu);buttont_context_Menu =(Button)findViewById(R.id.button_context_Menu);
registerForContextMenu(textView_context_Menu);registerForContextMenu(buttont_context_Menu);//這里的registerForContextMenu()也可以用下面的語句替代 //getContentView().setOnCreateContextMenuListener(this);}
找工作,上長沙英才網(wǎng)
//創(chuàng)建Context Menu public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo){ if(v==textView_context_Menu){ menu.setHeaderTitle(”這個(gè)是什么?“);menu.add(0,0,0,”蘋果“);menu.add(0,1,1,”獼猴桃“);}else if(v==buttont_context_Menu){ menu.setHeaderTitle(”我知道是什么了!“);menu.add(2,2,2,”不是蘋果“);menu.add(2,3,3,”就是獼猴桃“);} super.onCreateContextMenu(menu, v, menuInfo);} //菜單單擊響應(yīng) @Override public boolean onContextItemSelected(MenuItem item){ //獲取當(dāng)前被選擇的菜單項(xiàng)的信息 switch(item.getItemId()){ case 1: Toast toast=Toast.makeText(Context_Menu.this, ”你點(diǎn)擊了“+textView_context_Menu.getText(), Toast.LENGTH_LONG);toast.setGravity(Gravity.TOP, 100, 300);toast.show();break;case 3: Toast toast1=Toast.makeText(Context_Menu.this, ”你點(diǎn)擊了“+buttont_context_Menu.getText(), Toast.LENGTH_LONG);toast1.setGravity(Gravity.TOP, 100, 300);toast1.show();break;
找工作,上長沙英才網(wǎng)
} return true;} } ============== 第四個(gè)例子:動(dòng)態(tài)Menu 此為動(dòng)態(tài)Menu的實(shí)現(xiàn),采用的是代碼布局(非XML布局)。此種Memu用在什么情況下,具體該怎么做?
public class Trends_Menu extends Activity{ LinearLayout linearLayout;TextView textView;public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);linearLayout = new LinearLayout(this);linearLayout.setBackgroundColor(android.graphics.Color.BLUE);//設(shè)置背景色
linearLayout.setOrientation(linearLayout.VERTICAL);//設(shè)置布局方向
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);textView= new TextView(this);//創(chuàng)建TextView對(duì)象 textView.setBackgroundColor(Color.YELLOW);//設(shè)置背景顏色 textView.setText(”Trends_Men“);textView.setTextSize(50);//textView.setHeight(50);//textView.setWidth(100);textView.setTextColor(Color.RED);//設(shè)置字體顏色
找工作,上長沙英才網(wǎng)
linearLayout.addView(textView,params);//將textView添加到linearLayout中去
setContentView(linearLayout);//設(shè)置ui布局 } public boolean onPrepareOptionsMenu(Menu menu){ String string = textView.getText().toString();if(string.equals(”Trends_Menu“)){ menu.clear();//清掉菜單
MenuItem item = menu.add(0,1,1,”to Menu“);item.setIcon(android.R.drawable.alert_dark_frame);//android自帶的圖標(biāo) } if(string.equals(”Menu“)){ menu.clear();MenuItem item = menu.add(1,2,2,”to Trends_Menu“);item.setIcon(android.R.drawable.alert_light_frame);} menu.add(0,2,2,”Now is“+string);return super.onPrepareOptionsMenu(menu);} }
-------------ListView 一個(gè)用來顯示列表的控件 xml設(shè)計(jì)
代碼設(shè)計(jì)
第一個(gè)例子:
public class ListView3 extends ListActivity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);
找工作,上長沙英才網(wǎng)
String[] string={”華中科技“,”天龍大廈“,”科技園“,”天天樂園“};//string 是用來要存放的數(shù)據(jù)
//android.R.layout.simple_expandable_list_item_1為XML的配置文件, 用來設(shè)置列表中每一行的窗口 setListAdapter(new ArrayAdapter
* 在配置文件中要注意的是android:list 是系統(tǒng)自定義的不是隨便可以取的,否則會(huì)出現(xiàn)找不到ListView ==================== 第二個(gè)例子: textView_chrild.xml 找工作,上長沙英才網(wǎng) android:layout_height=”fill_parent“ android:paddingLeft=”50px“ android:paddingTop=”5px“ android:paddingBottom=”5px“ android:text=”no date“ android:textSize=”30sp“ />
找工作,上長沙英才網(wǎng)
找工作,上長沙英才網(wǎng)
map1.put(”list1“, ”map1“);map2.put(”list1“, ”map2“);list1.add(map1);list1.add(map2);//定義一個(gè)List,該List對(duì)象為第一個(gè)一級(jí)條目 提供數(shù)據(jù) List
//定義一個(gè)List,該List對(duì)象用來存儲(chǔ)所有二級(jí)條目對(duì)象 List>> list0 = new ArrayList
>>();list0.add(list21);list0.add(list31);
SimpleExpandableListAdapter simple = new SimpleExpandableListAdapter(找工作,上長沙英才網(wǎng)
this,//context list1,//一級(jí)條目數(shù)據(jù)
R.layout.expandable_group,//用來設(shè)置一級(jí)條目樣式的布局文件 new String[]{”list1“}, //指定一級(jí)條目數(shù)據(jù)的Key new int[]{R.id.textView_group},//指定一級(jí)條目數(shù)據(jù)顯示的控件id list0, //二級(jí)條目數(shù)據(jù)
R.layout.expandable_chrild,//用來設(shè)置二級(jí)條目樣式的布局文件 new String[]{”list“}, //指定二級(jí)條目數(shù)據(jù)的Key new int[]{R.id.textView_chrild});//指定二級(jí)條目數(shù)據(jù)顯示的控件id
setListAdapter(simple);//將SimpleExpandableListAdapter對(duì)象設(shè)置給當(dāng)前的Activity } } ============================= 第三個(gè)例子:自定義ListView public class ImageTextView extends LinearLayout{ public TextView textView;public ImageView imageView;
public ImageTextView(Context context, String string,Drawable drawable){----* 注意這里并沒用在xml定義控件
super(context);// TODO Auto-generated constructor stub this.setOrientation(VERTICAL);//設(shè)置為水平布局 imageView = new ImageView(context);imageView.setImageDrawable(drawable);imageView.setPadding(2, 5, 5, 0);//設(shè)置位置
addView(imageView,new LinearLayout.LayoutParams(40,30));
找工作,上長沙英才網(wǎng)
textView = new TextView(context);textView.setText(”title“);textView.setTextSize(20);addView(textView,new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,30));
textView = new TextView(context);textView.setText(”title“);textView.setTextSize(20);addView(textView,new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,30));} * 這是一個(gè)線性布局的View,其中包含一個(gè)TextView 和一個(gè)ImageView.* 且為垂直布局 }-----------------------public class ListCombinAdapter extends BaseAdapter{------------繼承BaseAdapter 且必須重寫五個(gè)函數(shù) private Context wcontext;private List
public ListCombinAdapter(Context context){ this.wcontext=context;list = new ArrayList
找工作,上長沙英才網(wǎng)
} @Override public Object getItem(int position){ return list.get(position);//得到對(duì)象在List數(shù)組中的位置 } @Override public long getItemId(int position){ return(long)position;} public long getPosition(Object item){ return list.indexOf(item);//得到對(duì)象在list中的索引 } @Override public View getView(int position, View convertView, ViewGroup parent){//得到一個(gè)顯示在屏幕上的View ImageTextView imageTextView;if(convertView == null){//判斷原來的View是否存在 如果不存在利用ImageTextView創(chuàng)建一個(gè)View imageTextView = new ImageTextView(wcontext,(String)list.get(position).textView.getText(),list.get(position).imageView.getDrawable());}else{ imageTextView =(ImageTextView)convertView;//強(qiáng)制轉(zhuǎn)型 imageTextView.textView = list.get(position).textView;imageTextView.imageView = list.get(position).imageView;} return imageTextView;} public void addItem(String text,Drawable drawable){ list.add(new ImageTextView(wcontext,text,drawable));//將創(chuàng)建好的ImageTextView對(duì)象加入到list中去
找工作,上長沙英才網(wǎng)
} }----------------------public class ListView4Activity extends ListActivity {//定制自己的adapter @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);//setContentView(R.layout.main);//不需要此項(xiàng)
ListCombinAdapter listCombinAdapter = new ListCombinAdapter(this);listCombinAdapter.addItem(”不知道此處的字符串起什么作用“,getResources().getDrawable(R.drawable.image2));listCombinAdapter.addItem(”不知道此處的字符串起什么作用“, getResources().getDrawable(R.drawable.image3));setListAdapter(listCombinAdapter);} } ===================== 第四個(gè)例子: simpleadapter2.xml 找工作,上長沙英才網(wǎng) android:orientation=”horizontal“> 找工作,上長沙英才網(wǎng) android:gravity=”right“ android:textSize=”10pt“ />
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);ArrayList
第四篇:關(guān)于android手機(jī)的文件共享
關(guān)于android系統(tǒng)的設(shè)備的文件共享
個(gè)人寫作水平不怎么好,請(qǐng)各位不要笑話!寫這個(gè)沒有什么其他意圖,只是想和大家分享個(gè)人的一些想法!
如今這年代手機(jī)、平板電腦進(jìn)入了每個(gè)人的生活,時(shí)不時(shí)的會(huì)拿出來玩玩。有時(shí)候,幾個(gè)人在一起的時(shí)候,可能會(huì)問到“你手機(jī)里有什么好東西,分享分享一下”,在這個(gè)時(shí)候,大家最可能想到的是通過藍(lán)牙來傳輸,當(dāng)然如果在文件大小較少時(shí)還好,傳幾分鐘沒關(guān)系,如果是視頻,數(shù)據(jù)包等這類大文件,還這樣傳輸就太費(fèi)時(shí)了。。。。。。。
費(fèi)話就不多說。直接說說這個(gè)文件共享。網(wǎng)絡(luò)速度的比藍(lán)牙快多了,所以我的共享方法就是通過網(wǎng)絡(luò)來共享。說到網(wǎng)絡(luò)當(dāng)然不會(huì)是用中國聯(lián)通,中國移動(dòng)這類,指的是局域網(wǎng),首先得建立一個(gè),android2.2以上系統(tǒng)的手機(jī)都可以建立一個(gè)無線熱點(diǎn),可以讓其中一個(gè)手機(jī)開啟這個(gè)功能(如果怕其他設(shè)備通過你的手機(jī)上網(wǎng)浪費(fèi)流量,就可以關(guān)閉移動(dòng)數(shù)據(jù)),讓其他需要共享的設(shè)備接入這個(gè)網(wǎng)絡(luò),如果在windows 下,大家都知道,通過Windows的資源管理將某個(gè)文件夾共享,其他設(shè)備通過輸入IP共享目錄就可以了,但是android系統(tǒng)的沒有這么方便的功能,當(dāng)然在這里原理也是一樣的,必須建立一個(gè)共享文件夾,這里個(gè)人推薦一個(gè)軟件是——無線數(shù)據(jù)線(這個(gè)網(wǎng)上很多)——此軟件建立的是一個(gè)FTP
建立 一個(gè)共享還不行啦,得有個(gè)軟件能訪問網(wǎng)絡(luò)文件夾才行啦,個(gè)人推薦ES文件瀏覽器,通過這兩個(gè)軟件就可以完成共享文件。
軟件的使用,我相信大家大部分一看都會(huì)用,如果不會(huì)請(qǐng)參考網(wǎng)上??偨Y(jié):
此方法的條件
1:有WIFI功能的設(shè)備
2:有一無線網(wǎng)絡(luò),或者一個(gè)手機(jī)能提供無線熱點(diǎn)。3:無線數(shù)據(jù)線軟件(僅建立共享機(jī)必備)4:ES文件瀏覽器軟件(訪問共享的必備)、說明:此方式,他人可以刪除文件,安全性不高 玩android高手,可以建立一個(gè)SMB服務(wù)器進(jìn)行共享。
另一種和與藍(lán)牙點(diǎn)對(duì)點(diǎn)發(fā)送方式類似,同樣要求上一種方式的前兩項(xiàng),要求另外一個(gè)軟件,稱為WIFI文件共享軟件,網(wǎng)上有下載。
第五篇:Android 退出activity 的方式總結(jié)
Android 退出activity 的方式總結(jié)(2012-09-02 22:24:20)在android中使用:[activityname].this.finish();只是退出了activity的堆棧中,要真正的退出程序在手機(jī)cpu中的運(yùn)行,當(dāng)應(yīng)用不再使用時(shí),通常需要關(guān)閉應(yīng)用,可以使用以下三種方法關(guān)閉android應(yīng)用:
一 使用killProcess()函數(shù),首先獲取當(dāng)前進(jìn)程的id,然后殺死該進(jìn)程: android.os.Process.killProcess(android.os.Process.myPid());
通過這種方式不能將應(yīng)用程序完全殺死,并且他不會(huì)把當(dāng)前應(yīng)用應(yīng)用的Activity的task任務(wù)棧清空
二 在activity的生命周期函數(shù)中添加如下的函數(shù),強(qiáng)制關(guān)閉與該包有關(guān)聯(lián)的一切執(zhí)行:
ActivityManager am =(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage(“packagename”);
還需要在AndroidManifest.xml文件中加入如下的權(quán)限:
此做法:只能殺死別人,不能殺死自己
三、終止當(dāng)前正在運(yùn)行的Java虛擬機(jī),導(dǎo)致程序終止 System.exit(0);不會(huì)把自己的應(yīng)用程序殺死
企業(yè)中做法:
創(chuàng)建類app 繼承Application
AndroidMainfest-->name-->app //聲明該類為整個(gè)應(yīng)用程序全局的實(shí)例
創(chuàng)建整個(gè)應(yīng)用程序全局的實(shí)例
App.class: ArrayList
其他的Activity中: public void onCreate(Bundle savedInstanceState){ App app =(App)getApplication();//獲取應(yīng)用程序全局的實(shí)例引用
app.activities.add(this);//把當(dāng)前Activity放入集合中 }
public void onDestory(){ App app =(App)getApplication();//獲取應(yīng)用程序全局的實(shí)例引用
app.activities.remove(this);//把當(dāng)前Activity從集合中移除 }
安全退出:
在菜單退出按鈕的事件中定義如下代碼: App app =(App)getApplication();List