大家在网上购物时都有这样一个体验,在确认订单选择收货人以及地址时,会跳转页面到我们存入网站内的所有收货信息(包含收货地址,收货人)的界面供我们选择,一旦我们点击其中某一条信息,则会自动跳转到订单提交界面,此时的收货信息已经变为我们之前选择的收件信息、
为了实现这个功能,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); 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处理返回结果的实现方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!
总结以上是内存溢出为你收集整理的Android中activity处理返回结果的实现方式全部内容,希望文章能够帮你解决Android中activity处理返回结果的实现方式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)