首页 > 其他分享 >Android Activity之间跳转相互传值

Android Activity之间跳转相互传值

时间:2023-02-06 18:04:56浏览次数:43  
标签:跳转 Bundle Intent bundle Activity import Android android


Intent用法实例:

1.无参数Activity跳转

Intent it = new Intent(Activity.Main.this, Activity2.class);
startActivity(it);



2.向下一个Activity传递数据(使用Bundle和Intent.putExtras)


Intent it = new Intent(Activity.Main.this, Activity2.class);
Bundle bundle=new Bundle();
bundle.putString("name", "This is from MainActivity!");
it.putExtras(bundle); // it.putExtra(“test”, "shuju”);
startActivityForResult(intent, 0);


对于数据的获取可以采用:


Bundle bundle = getIntent().getExtras();
String name = bundle.getString("name");




AndroidManifest.xml配置文件:


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="iaiai.test" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MyList" android:label="@string/contact_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TestWidget" android:label="@string/contact_title"></activity>
</application>
<uses-permission android:name="android.permission.READ_CONTACTS" />
<!-- 在SD卡中创建文件与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 往SD卡中写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>


[color=red]*此文件要注意一个地方就是写的所有Activity类必须要在此配置文件中配置activity,如果不配置则跳转会报错。[/color]



main.xml布局文件:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:id="@+id/et" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button android:id="@+id/bt" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/btn_next"></Button>
</LinearLayout>


list_items.xml布局文件:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/myListItem">
<EditText android:id="@+id/et1" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button android:id="@+id/bt1" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/btn_return"></Button>
</LinearLayout>


values/strings.xml:


<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, TestListView!</string>
<string name="app_name">TestListView</string>

<string name="contact_title">Contact</string>

<string name="btn_next">Next</string>
<string name="btn_return">Prev</string>
</resources>


values-zh-rCN/strings.xml:


<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, TestListView!</string>
<string name="app_name">TestListView</string>

<string name="contact_title">联系人</string>

<string name="btn_next">下一步</string>
<string name="btn_return">返回</string>
</resources>


MyList.java类:


package iaiai.test;

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;
import android.widget.EditText;

public class MyList extends Activity {

private EditText editView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

editView = (EditText) findViewById(R.id.et);

Button bt = (Button) findViewById(R.id.bt);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MyList.this, TestWidget.class);

Bundle bundle = new Bundle();
bundle.putString("text", editView.getText().toString());
intent.putExtras(bundle);

startActivityForResult(intent, 0);
// finish(); //这句意思是关闭当前Activity,也就是说点返回键返回不到这个Activity了.
}
});
}

/**
* 取到回传的值
*/
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) { // resultCode为回传的标记,我在B中回传的是RESULT_OK
case RESULT_OK:
Bundle b = data.getExtras(); // data为B中回传的Intent
editView.setText(b.getString("text"));// 回传的值
break;
default:
break;
}
}

}


TestWidget.java类:


package iaiai.test;

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;
import android.widget.EditText;

public class TestWidget extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_items);

Bundle bundle = getIntent().getExtras();

final EditText editView = (EditText) findViewById(R.id.et1);
editView.setText(bundle.getString("text"));

Button bt = (Button) findViewById(R.id.bt1);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(TestWidget.this, MyList.class);

Bundle bundle = new Bundle();
bundle.putString("text", editView.getText().toString());
intent.putExtras(bundle);

setResult(RESULT_OK, intent);
finish(); // 这句意思是关闭当前Activity,也就是说点返回键返回不到这个Activity了.
}
});
}

}


以下是运行结果:


[img]http://dl.iteye.com/upload/attachment/491020/d2cf9b7f-6c9e-33cb-9eab-a1bf3fb2165d.jpg[/img]


[img]http://dl.iteye.com/upload/attachment/491022/db8498f3-dd18-33c6-9456-c76c0b99225d.jpg[/img]


[img]http://dl.iteye.com/upload/attachment/491024/0f85887b-ff8b-372a-95c4-7796bafc023c.jpg[/img]


标签:跳转,Bundle,Intent,bundle,Activity,import,Android,android
From: https://blog.51cto.com/u_15955464/6040039

相关文章

  • Android控件之EditView探究
    EditView类继承自TextView类,EditView与TextView最大的不同就是用户可以对EditView控件进行编辑,同时还可以为EditView控件设置监听器,用来判断用户的输......
  • android实时视频网络传输方案(转)
    以320×240大小的视频传输为例[table]|方案|压缩率|压缩/传输方式|实时性|平均流量消耗|传输距离||用camera的回调函数发送原始的yuv420数据|0|无......
  • Android 编写使用root权限的android应用程序
    packagecom.iaiai;importjava.io.BufferedReader;importjava.io.DataOutputStream;importjava.io.InputStreamReader;importandroid.app.Activity;importandroid.os.B......
  • Android AsyncTask实现异步任务的执行
    Android的AsyncTask比Handler更轻量级一些,适用于简单的异步处理。首先明确Android之所以有Handler和AsyncTask,都是为了不阻塞主线程(UI线程),且UI的更新......
  • Android 总结4种线程中操作UI界面的方法
    我们经常会在后台线程中去做一些耗时的操作,比如去网络取数据。但是当数据取回来,需要显示到页面上的时候,会遇到一些小麻烦,因为我们都知道,android的UI页......
  • Android 使用ViewFlipper实现左右手势切换页面的demo
    废话少说,直接上代码吧main.xml:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/andr......
  • 获取屏幕上正在显示的activity
    用过ActivityManager的童鞋估计都知道,可以从ActivityManager里面可以获取到当前运行的所有任务,所有进程和所有服务,这是任务管理器的核心。那么,从里......
  • Android 常见问题之Assets文件大小限制
    AndroidAssetPackagingTool(aapt)使用这个工具可打包所有数据ImageXML文件任何资源文件.在生成APK时aapt选择性的压缩各种资源来节省设备空间,aa......
  • iphone View之间跳转
    新建TestController界面,然后在别的界面中添加下面代码,跳转到TestController界面,代码如下://打开新窗口,关闭当前窗口TestController*testContro......
  • Android百度地图sdk 踩坑DistanceUtil.getDistance报错
    计算百度地图两个经纬度的距离一直崩溃,一直在报这个错误,一直在报找不到jni库函数的错误java.lang.UnsatisfiedLinkError:Noimplementationfoundforbooleancom.baid......