Android中activity處理返回結(jié)果的實(shí)現(xiàn)方式
大家在網(wǎng)上購(gòu)物時(shí)都有這樣一個(gè)體驗(yàn),在確認(rèn)訂單選擇收貨人以及地址時(shí),會(huì)跳轉(zhuǎn)頁(yè)面到我們存入網(wǎng)站內(nèi)的所有收貨信息(包含收貨地址,收貨人)的界面供我們選擇,一旦我們點(diǎn)擊其中某一條信息,則會(huì)自動(dòng)跳轉(zhuǎn)到訂單提交界面,此時(shí)的收貨信息已經(jīng)變?yōu)槲覀冎斑x擇的收件信息、
為了實(shí)現(xiàn)這個(gè)功能,Android提供了一個(gè)機(jī)制,跳轉(zhuǎn)到其他activity時(shí),再返回,可以接受到其他activity返回的值,無(wú)需再start新的當(dāng)前activity;下面的示例中,創(chuàng)建兩個(gè)activity,其中在MainActivity中提示輸入“您的屬相”,然后單擊TextView“您的屬相”啟動(dòng)Main2Activity,在Main2Activity中選擇屬相,然后當(dāng)返回MainActivity時(shí),把之前Main2Activity中選擇的數(shù)據(jù)原樣返回給MainActivity。實(shí)現(xiàn)效果如下圖:

核心實(shí)現(xiàn)步驟如下:
(1)在MainActivity中設(shè)置啟動(dòng)帶結(jié)果requestCode的Activity
(2)在MainActivity中設(shè)置處理返回結(jié)果的方法
(3)在Main2Activity中設(shè)置返回結(jié)果
具體布局以及功能實(shí)現(xiàn)代碼如下:
(1)layout中activity_main.xml首頁(yè)布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.administrator.testactivity.MainActivity"> <TextView android:id="@+id/tv1" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="潘侯爺?shù)膶傧? android:gravity="center" android:textSize="30sp"/> <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:text="確定"/> </LinearLayout>
(2)layout中activity_main2.xml第二頁(yè)布局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main2" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.administrator.day15.Main2Activity"> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent"></ListView> </RelativeLayout>
(3)java中首頁(yè)布局MainActivity.java實(shí)現(xiàn)代碼:
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button btn1;
private TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.btn1);
tv1 = (TextView) findViewById(R.id.tv1);
tv1.setClickable(true);
tv1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
//設(shè)置啟動(dòng)intent以及對(duì)應(yīng)的請(qǐng)求碼
startActivityForResult(intent, 2);
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast t= Toast.makeText(MainActivity.this, tv1.getText().toString(), Toast.LENGTH_SHORT);
t.setGravity(Gravity.TOP,0,0);
t.show();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//建議添加邏輯判斷(使請(qǐng)求碼與結(jié)果碼配對(duì),確保返回結(jié)果是請(qǐng)求碼所請(qǐng)求的)
tv1.setText(data.getStringExtra("select"));
}
}
(4)java中第二頁(yè)頁(yè)布局Main2Activity.java實(shí)現(xiàn)代碼:
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class Main2Activity extends AppCompatActivity {
private ListView lv;
String[] names={"馬","牛","虎","兔","龍"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
lv = (ListView) findViewById(R.id.lv);
//使用ArrayAdapter為L(zhǎng)istView每個(gè)單元格填充數(shù)據(jù)
ArrayAdapter<String> adapter = new ArrayAdapter<String>(Main2Activity.
this,android.R.layout.simple_list_item_single_choice,names);
//設(shè)置ListView為單選模式
lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
//為L(zhǎng)istView中的每個(gè)ITERM設(shè)置單擊事件
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent =new Intent(Main2Activity.this, MainActivity.class);;
//將選中的item對(duì)應(yīng)的信息配上鍵值裝入Extra中供傳遞用
intent.putExtra("select",names[position]);
//設(shè)置3為結(jié)果碼
setResult(3,intent);
finish();//結(jié)束當(dāng)前Activity,返回上一個(gè)activity
}
});
lv.setAdapter(adapter);
}
}
以上所述是小編給大家介紹的Android中activity處理返回結(jié)果的實(shí)現(xiàn)方式,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Android 8.0不能自動(dòng)安裝APK問(wèn)題的解決方法(完美適配)
這篇文章主要給大家介紹了關(guān)于Android 8.0不能自動(dòng)安裝APK問(wèn)題的解決方法(完美適配),這里的自動(dòng)安裝是指下載完成后,自動(dòng)彈出安裝界面,而不是靜默安裝APK,文中介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07
Android實(shí)現(xiàn)靜態(tài)廣播監(jiān)聽(tīng)器的方法
這篇文章主要介紹了Android實(shí)現(xiàn)靜態(tài)廣播監(jiān)聽(tīng)器的方法,涉及Android的廣播機(jī)制與記錄監(jiān)聽(tīng)廣播信息的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
詳解Android性能優(yōu)化之啟動(dòng)優(yōu)化
一款應(yīng)用的第一印象很重要,第一印象往往決定了用戶(hù)的去留。打開(kāi)一款應(yīng)用,如果速度很快,很順暢,那么很容易讓人覺(jué)得這款應(yīng)用背后的技術(shù)實(shí)力很強(qiáng),用戶(hù)潛意識(shí)中會(huì)對(duì)這款應(yīng)用更加的信賴(lài)。本文將詳細(xì)介紹Android性能優(yōu)化之啟動(dòng)優(yōu)化。2021-06-06
Android App實(shí)現(xiàn)監(jiān)聽(tīng)軟鍵盤(pán)按鍵的三種方式
本篇文章主要介紹Android App實(shí)現(xiàn)監(jiān)聽(tīng)軟鍵盤(pán)按鍵的三種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
Android使用ListView實(shí)現(xiàn)下拉刷新及上拉顯示更多的方法
這篇文章主要介紹了Android使用ListView實(shí)現(xiàn)下拉刷新及上拉顯示更多的方法,結(jié)合實(shí)例形式分析了ListView滾動(dòng)刷新與加載的相關(guān)操作技巧,需要的朋友可以參考下2017-02-02
Android RelativeLayout相對(duì)布局屬性簡(jiǎn)析
在Android應(yīng)用開(kāi)發(fā)過(guò)程中,為了界面的美觀考慮,經(jīng)常會(huì)使用到布局方面的屬性,本文就以此問(wèn)題深入解析,詳解一下Android RelativeLayout相對(duì)布局屬性在實(shí)際開(kāi)發(fā)中的應(yīng)用,需要的朋友可以參考下2012-11-11

