ANDROID中ACTIVITY处理返回结果的实现方式
来源:互联网 发布:云计算技术专业 编辑:程序博客网 时间:2024/06/13 23:37
大家在网上购物时都有这样一个体验,在确认订单选择收货人以及地址时,会跳转页面到我们存入网站内的所有收货信息(包含收货地址,收货人)的界面供我们选择,一旦我们点击其中某一条信息,则会自动跳转到订单提交界面,此时的收货信息已经变为我们之前选择的收件信息、
为了实现这个功能,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首页布局:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:id="@+id/activity_main" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 android:orientation="vertical" 9 tools:context="com.example.administrator.testactivity.MainActivity">10 <TextView11 android:id="@+id/tv1"12 android:layout_width="match_parent"13 android:layout_height="wrap_content"14 android:hint="潘侯爷的属相"15 android:gravity="center"16 android:textSize="30sp"/>17 <Button18 android:id="@+id/btn1"19 android:layout_width="wrap_content"20 android:layout_height="wrap_content"21 android:layout_gravity="right"22 android:text="确定"/>23 </LinearLayout>
(2)layout中activity_main2.xml第二页布局:
1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:id="@+id/activity_main2" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 tools:context="com.example.administrator.day15.Main2Activity"> 8 <ListView 9 android:id="@+id/lv"10 android:layout_width="match_parent"11 android:layout_height="match_parent"></ListView>12 </RelativeLayout>
(3)java中首页布局MainActivity.java实现代码:
1 import android.content.Intent; 2 import android.support.v7.app.AppCompatActivity; 3 import android.os.Bundle; 4 import android.view.Gravity; 5 import android.view.View; 6 import android.widget.Button; 7 import android.widget.TextView; 8 import android.widget.Toast; 9 public class MainActivity extends AppCompatActivity {10 private Button btn1;11 private TextView tv1;12 @Override13 protected void onCreate(Bundle savedInstanceState) {14 super.onCreate(savedInstanceState);15 setContentView(R.layout.activity_main);16 btn1 = (Button) findViewById(R.id.btn1);17 tv1 = (TextView) findViewById(R.id.tv1);18 tv1.setClickable(true);19 tv1.setOnClickListener(new View.OnClickListener() {20 @Override21 public void onClick(View v) {22 Intent intent = new Intent(MainActivity.this, Main2Activity.class);23 //设置启动intent以及对应的请求码24 startActivityForResult(intent, 2);25 }26 });27 btn1.setOnClickListener(new View.OnClickListener() {28 @Override29 public void onClick(View v) {30 Toast t= Toast.makeText(MainActivity.this, tv1.getText().toString(), Toast.LENGTH_SHORT);31 t.setGravity(Gravity.TOP,0,0);32 t.show();33 }34 });35 }36 @Override37 protected void onActivityResult(int requestCode, int resultCode, Intent data) {38 super.onActivityResult(requestCode, resultCode, data);39 //建议添加逻辑判断(使请求码与结果码配对,确保返回结果是请求码所请求的)40 tv1.setText(data.getStringExtra("select"));41 }42 }
(4)java中第二页页布局Main2Activity.java实现代码:
1 import android.content.Intent; 2 import android.support.v7.app.AppCompatActivity; 3 import android.os.Bundle; 4 import android.view.View; 5 import android.widget.AdapterView; 6 import android.widget.ArrayAdapter; 7 import android.widget.ListView; 8 public class Main2Activity extends AppCompatActivity { 9 private ListView lv;10 String[] names={"马","牛","虎","兔","龙"};11 @Override12 protected void onCreate(Bundle savedInstanceState) {13 super.onCreate(savedInstanceState);14 setContentView(R.layout.activity_main2);15 lv = (ListView) findViewById(R.id.lv);16 //使用ArrayAdapter为ListView每个单元格填充数据17 ArrayAdapter<String> adapter = new ArrayAdapter<String>(Main2Activity.18 this,android.R.layout.simple_list_item_single_choice,names);19 //设置ListView为单选模式20 lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);21 //为ListView中的每个ITERM设置单击事件22 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {23 @Override24 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {25 Intent intent =new Intent(Main2Activity.this, MainActivity.class);;26 //将选中的item对应的信息配上键值装入Extra中供传递用27 intent.putExtra("select",names[position]);28 //设置3为结果码29 setResult(3,intent);30 finish();//结束当前Activity,返回上一个activity31 }32 });33 lv.setAdapter(adapter);34 }35 }
0 0
- Android中Activity处理返回结果的实现方式
- Android中Activity处理返回结果的实现方式
- ANDROID中ACTIVITY处理返回结果的实现方式
- Activity处理返回结果
- 工作中客户端返回结果处理方式的记录
- android中关于activity的返回键处理方法
- Activity间的切换实现和数据传递以及上一个Activity返回结果的获取和处理
- Activity传递数据的几种方式及返回结果
- 关于Fragment跳转到Activity 获取返回结果的处理
- Android Activity间的两种跳转方式、自我关闭方法、关闭后的结果处理
- Android中启动其他Activity并返回结果
- Android中启动其他Activity并返回结果
- ASP.NET中jQuery调用WebService处理返回结果的方式
- Activity中获取AsyncTask中onPostExecute的结果返回值
- Android开启新的activity并获取返回的结果
- Android Activity启动、关闭、Activity返回结果到启动它的Activity
- 详解Android中那些酷炫返回方式的实现
- Activity间返回结果实现特征说明
- JVM(十) 命名空间
- JAVA环境变量和TOMCAT服务器配置
- Chapter11——分别声明Teacher(教师类)和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)类。
- Yii2 最简单的实现管理员才能登录后台
- wamp初配置
- ANDROID中ACTIVITY处理返回结果的实现方式
- Gdiplus读取PND1
- PLSQL 中文乱码解决
- vi/vim命令模式和编辑模式各种操作
- HDOJ--2700 Parity
- 腾讯云CentOS6.5下安装mysql,并配置好远程访问等权限,途中遇到的问题
- 30 Examples For Awk Command In Text Processing
- ie8不兼容的一些方法兼容实现
- Spring速查手册(二)——Bean的作用域