屏幕间的跳转和传值
来源:互联网 发布:php管理上传文件 编辑:程序博客网 时间:2024/05/16 07:31
一、 代码
1. MainActivity.java
package com.receiveresult;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
publicclass MainActivityextends Activity {
staticfinalprivateintGET_CODE = 0;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new Button.OnClickListener(){
publicvoid onClick(View v){
Intent intent = new Intent();
intent.setClass(MainActivity.this,ReceiverActivity.class);
startActivityForResult(intent,GET_CODE);
}
});
Log.v("MainActivity","onCreate");
}
/**
* requestCode就是startActivityForResult的requestCode,resultCode就是setResult里面的resultCode,返回的数据在data里面。
*/
@Override
protectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode ==GET_CODE) {
TextView text = (TextView) findViewById(R.id.textView1);
if (resultCode ==RESULT_CANCELED) {
text.setText("cancelled");
} else {
if (data !=null) {
text.setText(data.getAction());
}
}
}
Log.v("MainActivity","onActivityResult");
}
}
2. ReceiverActivity.java
package com.receiveresult;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
publicclass ReceiverActivityextends Activity {
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.receiver_main);
Button ok = (Button)findViewById(R.id.ok);
ok.setOnClickListener(okListener);
Button fail = (Button)findViewById(R.id.fail);
fail.setOnClickListener(failListener);
}
private OnClickListenerokListener = new OnClickListener() {
publicvoid onClick(View v) {
setResult(RESULT_OK,new Intent().setAction("ok!"));
//要调用finish()销毁当前的Activity,否则无法返回到原来的Activity
finish();
}
};
private OnClickListenerfailListener =new OnClickListener() {
publicvoid onClick(View v) {
setResult(RESULT_OK,new Intent().setAction("fail!"));
//要调用finish()销毁当前的Activity,否则无法返回到原来的Activity
finish();
}
};
}
3. activity_main.xml
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_alignParentTop="true"
android:layout_marginTop="26dp"
android:text=""/>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="@string/go"/>
</RelativeLayout>
4. receiver_main.xml
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="76dp"
android:text="@string/ok"/>
<Button
android:id="@+id/fail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/ok"
android:layout_below="@+id/ok"
android:layout_marginTop="38dp"
android:text="@string/fail"/>
</RelativeLayout>
二、 运行结果
三、 总结
1) Activity跳转,无返回结果。从一个Activity启动另一个Activity,直接startActivity(new Intent(当前Activity.this,下一Activity.class))。
2) Activity跳转,有返回结果。
startActivityForResult(Intenet intenet,int requestCode)。
3) Activity传送数据:
intent.putExtra("Text", mText);
Bundle extras = getIntent().getExtras();
String text = extras.getString("Text");- 屏幕间的跳转和传值
- Android屏幕间的跳转和事件的传递
- Android 几种屏幕间跳转的跳转Intent Bundle
- Android学习笔记(五)——屏幕间的跳转和事件的传递
- Android Activity的跳转:普通跳转(显式跳转,隐式跳转)和传值跳转
- android学习笔记之屏幕间的跳转
- 使用Storyboard跳转和页面间的传值
- springMvc请求的跳转和传值
- 页面间跳转和传值
- 跳转屏幕的方法,记下来先
- Android_Activity传值和跳转
- 【android开发】页面之间的跳转和传值
- intent实现Activity的跳转和传值
- iOS两个应用程序之间的跳转和传值
- 两个应用之间的跳转和传值
- iOS应用之间的跳转和传值
- 【iOS】Segue的页面跳转和传值
- iOS两个APP之间的跳转和传值
- notepad++ 设置豆沙绿
- hibernate映射时表名与列名前缀的设置
- JavaScript对象学习经验整理
- 归并排序
- 【VS-C++】WinSocket开发时提示无法解析的外部符号
- 屏幕间的跳转和传值
- Linux内存机制
- 无法找到会话标识符。启用检查 PLUSTRACE 角色
- mysql的基本操作(初学者)
- 设计一个类,该类不能被继承,且只能实例化3次
- Oracle物化视图语法
- readers-writers problems
- usb 枚举过程中的状态机
- Linux下编译mongodb以及C++客户端驱动