您的位置:首页 > 其它

安卓-----打开新的Activity,并传递若干个参数给它

2013-06-14 15:47 183 查看
第一种传递参数:

1、布局文件activity_main.xml文件:

<RelativeLayout xmlns: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/btn_go"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="169dp"
android:onClick="go"
android:text="@string/btn_go" />

</RelativeLayout>


activity_other.xml文件:

<RelativeLayout xmlns: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/btn_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:onClick="back"
android:text="@string/btn_back" />

</RelativeLayout>


2、MainActivity

package com.example.lession12_activity;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

public void go(View v){
//携带数据
Intent intent=new Intent(MainActivity.this, OtherActivity.class);
Bundle bundle=new Bundle();
bundle.putString("name", "shuang");
bundle.putString("pass", "123");
//把附加的数据放到意图当中
intent.putExtras(bundle);
//执行意图
startActivity(intent);

}

}


OtherActivity获取参数的值:

package com.example.lession12_activity;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class OtherActivity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
//设置显示的视图
setContentView(R.layout.activity_other);

//获取数据
Bundle bundle=this.getIntent().getExtras();
Toast.makeText(this, "姓名:"+bundle.get("name")+"密码"+bundle.get("pass"), Toast.LENGTH_LONG).show();
}

public void back(View v){
Intent intent=new Intent();
//intent.setClassName("com.example.lession12_activity", "com.example.lession12_activity.MainActivity");
ComponentName component=new ComponentName("com.example.lession12_activity", "com.example.lession12_activity.MainActivity");
intent.setComponent(component);
startActivity(intent);
}
}


第二种传递参数的方法(就是在MainActivity中存值和OtherActivity中获取值的方法需要改变,其他的不变):

package com.example.lession12_activity;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

public void go(View v){
//创建意图对象
/*Intent intent=new Intent();
intent.setClass(this, OtherActivity.class);*/
//执行意图
//startActivity(intent);

//自定义隐士意图
/*Intent intent=new Intent();
//自定义的action
intent.setAction("www.csdn.net.hbsi");
intent.addCategory("android.intent.category.DEFAULT");
intent.setDataAndType(Uri.parse("csdn://www.csdn.net/xx"),"image/jpeg");
//执行意图
startActivity(intent);*/

//携带数据
Intent intent=new Intent(MainActivity.this, OtherActivity.class);
/*Bundle bundle=new Bundle();
bundle.putString("name", "shuang");
bundle.putString("pass", "123");*/
//把附加的数据放到意图当中
//intent.putExtras(bundle);

intent.putExtra("name", "shuang");
intent.putExtra("pass", "123");

//执行意图
startActivity(intent);

}

}


OtherActivity:

package com.example.lession12_activity;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class OtherActivity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
//设置显示的视图
setContentView(R.layout.activity_other);

//获取数据
Bundle bundle=this.getIntent().getExtras();
Intent intent=this.getIntent();
Toast.makeText(this, "姓名:"+intent.getStringExtra("name")+"密码:"+intent.getStringExtra("pass"), Toast.LENGTH_LONG).show();
//Toast.makeText(this, "姓名:"+bundle.get("name")+"密码"+bundle.get("pass"), Toast.LENGTH_LONG).show();
}

public void back(View v){
Intent intent=new Intent();
//intent.setClassName("com.example.lession12_activity", "com.example.lession12_activity.MainActivity");
ComponentName component=new ComponentName("com.example.lession12_activity", "com.example.lession12_activity.MainActivity");
intent.setComponent(component);
startActivity(intent);
}
}


记得在项目清单中配置OtherActivity!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐