Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android從無知到有知——NO.2

Android從無知到有知——NO.2

編輯:關於Android編程

這幾天雖說偶遇瓶頸,但也漸入佳境,由於之前沒有接觸過android,所以作為一個新手不會給自己過高的要求。相比於去年做的分布式資源檢索,今年的移動開發著實要簡單一些,雖然其本質沒有太大的區別,但從用戶體驗方面來說更能激發每一位學習者的興趣,這可能就是android的魅力所在吧...

前天做的“電話撥號器”,最後加載到模擬器的時候不知道哪裡出了錯,系統總是自動關閉,惱羞成怒也就沒再搭理它;昨天又做了“短信發送器”,也遇到了和前者相似的問題,不過最後經過調試算是研制成功了吧,因此調整了前者,相同的解決方案,外瑞古德~~~那接下來就以“短信發送器”為例談談自己的一些學習心得吧...

首先上圖一張:\

咱先來說說這個短信發送器的基本構造,大家從上圖也可看出,其大體可分為五部分,其實也就是兩條提示+兩個輸入框,還有一個發送按鈕。那麼這五部分是怎麼出來的,先來看一小段代碼:


這塊代碼是定義短信輸入框的,最上邊的"@+id/et_word”是在R.java文件中添加一個名為et_word的id,也就是聲明了我們這個輸入框;lines=“5”規定了這個輸入框為五行,這個長度一般可以滿足我們的需求;而下邊的四個layout屬性定義了這個文本框的長寬和相對位置,其屬性值大家可以好好了解一下,都很有意思,其中第三個的意思是文本框的位置在id為tv_ism的下方,而tv_ism便是我們所看到的“請輸入短信內容”;最後定義了短信輸入框的類型。其他幾塊內容都和其類似,當然還有很多的屬性,大家可以查看其API了解一下。

UI設計的相對簡陋,還望大家多多包涵,接下來就是賦予其相應的功能了,再上代碼一大塊:

public class MainActivity extends Activity implements OnClickListener {
    
	
	private EditText et_word;
	private EditText et_number;
    @Override   
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         et_number=(EditText)findViewById(R.id.et_number);
         et_word=(EditText)findViewById(R.id.et_word);
        Button bt_sent=(Button)findViewById(R.id.bt_sent);
        bt_sent.setOnClickListener(this);
    }

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.bt_sent:
			 String word=et_word.getText().toString().trim();
			 String number=et_number.getText().toString().trim();
			 if(TextUtils.isEmpty(word)||TextUtils.isEmpty(number)){
				 Toast.makeText(this, "電話號碼或者短信內容不能為空", Toast.LENGTH_SHORT).show();
				 return;
			 }else{
				 SmsManager smsManager=SmsManager.getDefault();
				 ArrayList words=smsManager.divideMessage(word);
				 for(String str:words){
				 smsManager.sendTextMessage(number, null, str, null, null);
			     }
			 }
			break;
		}
		
	}   
}

我們先從實際出發,要想使短信發送器能夠發送短信,首先要找到發送按鈕,但我們點擊按鈕時,系統會找到短信內容和想要發送的號碼,然後實現其功能,大體上也就是分為這三步。

於是乎我們先找到按鈕:Button bt_sent=(Button)findViewById(R.id.bt_sent); bt_sent.setOnClickListener(this);這裡邊涉及了幾個常用的方法,大家看其表面意思也能了解,先通過id找到按鈕,然後調用其方法設定點擊事件;下邊的onClick(View v)為接口OnClickListener的實現方法,當的得到的id為R.id.bt_sent時執行一系列的操作;上邊的et_number、et_word和bt_sent是一樣的,先通過id找到他們,然後利用他們自身的方法提取電話號碼和短信內容;接下來就是判斷電話號碼或者短信內容是否為空,相信大家都有這樣的常識,二者有一方為空則不能發送短信;關於Toast大家可以去查一查,翻譯成中文為“吐絲面包”,它主要是給用戶一個提示,它調用的方法有三個參數,這個一開始不大好理解,不過通過該例大家也能猜出它的大概意思,其中第三個參數為顯示時長,最後不要忘了調用Toast的show()返回值。如果號碼或內容不為空的話那就執行else裡的語句,提取短信內容,如果發送內容過長,超過規定的70個漢字或者160個字符便對其進行分段,這時要用到ArrayList words=smsManager.divideMessage(word);然後對其進行遍歷,smsManager.sendTextMessage(number, null, str, null, null);這裡邊有五個參數,第一個為要發送的聯系人電話號碼;第二個為短信來自哪裡,現在我國的運行商不支持這個功能;第三個為發送的短信內容;第四個參數負責報告短信是否發送成功;第五個為是否發送送達報告,這個現在先不用管,都可設為null。

還需要注意的一點就是SmsManager smsManager=SmsManager.getDefault();這條語句,它之前默認導入的包已經過期,所以需要導入新的包,這個到時候會有提示。
ok,這樣一個簡易的短信發送器便搭建完成了,啟動兩個模擬器便可進行實驗,就如上圖所示,發送短文本和長文本的區別也一目了然。今天將繼續深入了解四種布局,UI時代到來,敬請期待……

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved