編輯:關於Android編程
使用意圖傳遞數據的幾種方式
點此獲取完整代碼
我們除了要從活動返回數據,也常常要傳遞數據給活動。對此我們可以使用Intent對象將這些數據傳遞給目標活動。
1、創建一個名為PassingData的項目,在activity_main.xml文件中添加一個Button:
2、在res/layout文件夾中添加一個新的secondactivity.xml文件,添加TextView和Button:
3、在當前包中新建一個Class,命名為SecondActivity,在SecondActivity.java中添加如下代碼:package com.example.passingdata; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.secondactivity); // 為了獲得通過Intent對象發送的數據,先使用getIntent()方法獲取Intent對象, // 再調用該對象的getStringExtra()方法來獲得使用putExtra()方法設置的字符串值 Toast.makeText(this, getIntent().getStringExtra("str1"), Toast.LENGTH_SHORT).show(); // 同上,對於整數值,調用getIntExtra()方法(注意,如果該名稱沒有存儲值,則會使用默認值,在此為0) Toast.makeText(this, Integer.toString(getIntent().getIntExtra("age1", 0)), Toast.LENGTH_SHORT).show(); // 獲取Bundle對象,要使用getExtras()方法:對於字符串值,使用getString();對於整數值,使用getInt() Bundle bundle = getIntent().getExtras(); Toast.makeText(this, bundle.getString("str2"), Toast.LENGTH_SHORT) .show(); Toast.makeText(this, Integer.toString(bundle.getInt("age2")), Toast.LENGTH_SHORT).show(); } public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("age3", 45); // 回傳可以使用setData()方法(上一篇中講過) intent.setData(Uri.parse("Something passed back to main activity")); // 設置Intent和結果碼 setResult(RESULT_OK, intent); // 關閉活動 finish(); } }
4、在AndroidManifest.xml文件中添加如下代碼:
5、在MainActivity.java文件中添加如下代碼:public void onClick(View view) { Intent intent = new Intent("net.zenail.PassingData.SecondActivity"); // 法一:使用putExtra()方法為Intent對象添加了兩個鍵/值對:String和integer類型 intent.putExtra("str1", "This is a string"); intent.putExtra("age1", 25); // 法二:創建Bundle對象,向其添加兩個鍵/值對,再使用putExtras添加給Intent對象 Bundle extras = new Bundle(); extras.putString("str2", "This is another string"); extras.putInt("age2", 35); intent.putExtras(extras); // 啟動活動並設置1為請求碼 startActivityForResult(intent, 1); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1) { if (resultCode == RESULT_OK) { // 用getIntExtra()獲取用putExtra()設置的整數值 Toast.makeText(this, Integer.toString(data.getIntExtra("age3", 0)), Toast.LENGTH_SHORT).show(); // 用getData()獲取用setData()設置的字符串值 Toast.makeText(this, data.getData().toString(), Toast.LENGTH_SHORT).show(); } } }
6、運行,效果如下:點擊按鈕:
出現如下畫面:
消息框消失,點擊按鈕,出現如下畫面:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"/uploadfile/Collfiles/20140508/2014050808305313.jpg" alt="\">
開發App過程中,免不了要進行網絡請求操作進行數據交換,比如下載圖片,如果自己寫一個下載圖片的類進行操作的話,要考慮太多太多內容,必須線程池,內存溢出,圖片磁盤緩存操作,
本文較為詳細的總結分析了Android編程下拉菜單spinner用法。分享給大家供大家參考,具體如下:Spinner控件也是一種列表類型的控件,它的繼承關系如下:java
本案例知識是:後台執行定時任務。Alarm機制:一、創建LongRunningService類 package com.example.servicebestp
在Google官方Android設計指南中(鏈接:http://www.apkbus.com/design/get-started/ui-overview.html)有一