当前位置: 移动技术网 > IT编程>移动开发>Android > Android中activity处理返回结果的实现方式

Android中activity处理返回结果的实现方式

2019年07月24日  | 移动技术网IT编程  | 我要评论

洛城生死恋主题曲,通辽论坛,暴风论坛

大家在网上购物时都有这样一个体验,在确认订单选择收货人以及地址时,会跳转页面到我们存入网站内的所有收货信息(包含收货地址,收货人)的界面供我们选择,一旦我们点击其中某一条信息,则会自动跳转到订单提交界面,此时的收货信息已经变为我们之前选择的收件信息、

为了实现这个功能,android提供了一个机制,跳转到其他activity时,再返回,可以接受到其他activity返回的值,无需再start新的当前activity;下面的示例中,创建两个activity,其中在mainactivity中提示输入“您的属相”,然后单击textview“您的属相”启动main2activity,在main2activity中选择属相,然后当返回mainactivity时,把之前main2activity中选择的数据原样返回给mainactivity。实现效果如下图:

核心实现步骤如下:

(1)在mainactivity中设置启动带结果requestcode的activity

(2)在mainactivity中设置处理返回结果的方法

(3)在main2activity中设置返回结果

具体布局以及功能实现代码如下:

(1)layout中activity_main.xml首页布局:

<?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="潘侯爷的属相"
  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第二页布局:

<?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中首页布局mainactivity.java实现代码:

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);
    //设置启动intent以及对应的请求码
    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);
  //建议添加逻辑判断(使请求码与结果码配对,确保返回结果是请求码所请求的)
  tv1.settext(data.getstringextra("select"));
 }
}

(4)java中第二页页布局main2activity.java实现代码:

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为listview每个单元格填充数据
  arrayadapter<string> adapter = new arrayadapter<string>(main2activity.
    this,android.r.layout.simple_list_item_single_choice,names);
  //设置listview为单选模式
  lv.setchoicemode(listview.choice_mode_single);
  //为listview中的每个iterm设置单击事件
  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对应的信息配上键值装入extra中供传递用
    intent.putextra("select",names[position]);
    //设置3为结果码
    setresult(3,intent);
    finish();//结束当前activity,返回上一个activity
   }
  });
  lv.setadapter(adapter);
 }
}

以上所述是小编给大家介绍的android中activity处理返回结果的实现方式,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网