Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android中activity处理返回结果的实现方式大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

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

核心实现步骤如下:

(1)在MainActivity中设置启动带结果requestCode的Activity

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

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

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

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

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://scheR_225_11845@as.android.com/apk/res/android"
 xmlns:tools="http://scheR_225_11845@as.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://scheR_225_11845@as.android.com/apk/res/android"
 xmlns:tools="http://scheR_225_11845@as.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,返回上@L_@R_944_11235@_0@activity
   }
  });
  lv.setAdapter(adapter);
 }
}

以上所述是小编给大家介绍的Android中activity处理返回结果的实现方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持

大佬总结

以上是大佬教程为你收集整理的Android中activity处理返回结果的实现方式全部内容,希望文章能够帮你解决Android中activity处理返回结果的实现方式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。