Android 从一个Activity跳转到另一个Activity获取第二个Activity的返回值
生活随笔
收集整理的這篇文章主要介紹了
Android 从一个Activity跳转到另一个Activity获取第二个Activity的返回值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在做安卓開發的過程中,經常會在兩個Activity之間傳遞數據,從第一個Activity傳遞數據到第二個Activity是很簡單的,在第一個Activity中這樣寫代碼
Intent intent = new Intent(packageContext, cls);intent.putExtra(name, value);startActivity(intent);
與50位技術專家面對面20年技術見證,附贈技術全景圖
然后在第二個Activity中接受就可以了
Intent intent = getIntent();intent.getStringExtra(name);
如果是想要在第一個Activity中接受第二個Activity返回的數據改怎么辦呢?其實跟上面的類似,下面就簡單演示一個程序。
首先是布局文件activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><EditTextandroid:id="@+id/et_content1"android:lines="6"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="請輸入內容一" /><EditTextandroid:id="@+id/et_content2"android:lines="6"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="請輸入內容二" /><Buttonandroid:onClick="select_content1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="選擇內容一" /><Buttonandroid:onClick="select_content2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="選擇內容二" /></LinearLayout>第二個activity_content.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><ListView android:id="@+id/lv"android:layout_width="match_parent"android:layout_height="match_parent"></ListView></LinearLayout> 還有一個lv_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical" ><TextView android:id="@+id/sms_info"android:drawableLeft="@drawable/cqu"android:gravity="center_vertical"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="#000000"android:text="afafga"/>"</LinearLayout> 主Activity函數
public class MainActivity extends Activity {private EditText et_content1;private EditText et_content2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_content1 = (EditText) findViewById(R.id.et_content1);et_content2 = (EditText) findViewById(R.id.et_content2);}public void select_content1(View v){Intent intent = new Intent(MainActivity.this,ListContent2Activity.class);/*** 可以一次性完成這項任務,當程序執行到這段代碼的時候,* 假若從T1Activity跳轉到下一個Text2Activity,* 而當這個Text2Activity調用了finish()方法以后,* 程序會自動跳轉回T1Activity,* 并調用前一個T1Activity中的onActivityResult( )方法。* */startActivityForResult(intent, 0);}public void select_content2(View v){Intent intent = new Intent(MainActivity.this,ListContent1Activity.class);startActivityForResult(intent, 1);}/****** 接受第二個Activity返回的數據時調用* * ****/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (data == null) {return;}String contentInfo = data.getStringExtra("contentInfo");// 根據返回碼的不同,設置參數if (requestCode == 0) {et_content1.setText(contentInfo);}if (requestCode == 1) {et_content2.setText(contentInfo);}} }第二個Activity
public class ListContent1Activity extends Activity {private ListView lv;private String[] objects = {"序 緣淺情深","歿年,何為歿年?","似水流年,歿形散之。","“天降神女,是之歿年。”","“濟世救民,是之歿年。”","“宸國之后,是之歿年。”","不知說了多少歲月的民謠還在傳唱,留芳千古的曠世佳話依舊流傳。茶樓說書人仍然熱火朝天的訴說一場又一場的風花雪月。","世人向來喜聞才子佳人的曠世絕戀,說書人自然也是隨口便吟得一篇佳作。其中,洺帝與神女的一段奇緣固是必不可少。成了百姓茶余飯后的一記解悶良方。","世人愛聽的不過是洺帝與神女至死不渝的愛情,又怎會顧得背后的凄涼與落寞。","他們道我為神女,說我為皇后,可我究竟是誰?我忘了。我只記得,有一個與我風雨同舟的少年,我是他的妻。","人生兜兜轉轉,百轉千回,終是奈何緣淺情深。我有幸命中得以見他,即使如今只能在黃泉水畔,奈何橋頭等待他來世的一寸回眸,但我亦不后悔。","世間一切愛恨情仇,哪抵一碗孟婆湯。只愿那孟婆之湯別讓我忘記太多,記得來世尋他來渡"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_content);lv = (ListView) findViewById(R.id.lv);ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.lv_item,R.id.sms_info, objects);lv.setAdapter(adapter);lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int positon,long id) {String contentInfo = objects[positon];Intent data = new Intent();// 設置要回傳的數據data.putExtra("contentInfo", contentInfo);// 設置回傳碼和IntentsetResult(0, data);finish();}});}} public class ListContent2Activity extends Activity {private ListView lv;private String[] objects = {"他將手中的石頭揉碎了隨風揚走,于是蒼穹星辰浩瀚。","世間本無日月,星盤先行。","又是一個開天辟地的故事,將最近自己的幾個短篇里的梗揉了一下,出了個小練筆。","因為是練筆,很短,不到兩千字,但卻是完整的故事。","這里是 燁彌的燁彌。"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_content);lv = (ListView) findViewById(R.id.lv);ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.lv_item,R.id.sms_info, objects);lv.setAdapter(adapter);lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int positon,long id) {String contentInfo = objects[positon];Intent data = new Intent();// 設置要回傳的數據data.putExtra("contentInfo", contentInfo);// 設置回傳碼和IntentsetResult(1, data);finish();}});}}
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的Android 从一个Activity跳转到另一个Activity获取第二个Activity的返回值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欠奇瑞金融车贷一年半
- 下一篇: 信用卡未出账单是什么意思