您的位置:首页 > 其它

两个activity之间的跳转与传值

2015-01-05 17:54 369 查看
一:什么是Activity?

简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,如下设置

<actionandroid:name="android.intent.action.MAIN" />当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作。

二:Activity的跳转与传值,主要是通过Intent类来连接多个Activity,以及数据的传递。

三:Activity的跳转传值,没有返回值。

//activity.xml
<LinearLayout 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" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转到第二个activity" />
</LinearLayout>


//Activity2.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="32px"
/>
<LinearLayout>


//MainActivity1
public class MainActivity extends Activity {

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {

public void onClick(View v) {

Intent intent=new Intent(MainActivity.this, activity2.class); //跳转到那个页面
intent.putExtra("txt", "Hello world");                        //传递什么数据以键值对方式
startActivity(intent);                                        //启动Activity

//Bundle dataBundle=new Bundle();
//dataBundle.putString("txt", "hello");  /
/bundle类中加入数据(key -value的形式,另一个activity里面取数据的时候,就要用到key,找出对应的值
//intent.putExtras(dataBundle);
//startActivity(intent);
}
});

}


//activity2
public class activity2 extends Activity {

TextView textView1;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);
textView1=(TextView) findViewById(R.id.textView1);
textView1.setText(getIntent().getStringExtra("txt"));
//activity1的textview显示activity2传来的值          }

}


四:Activity的跳转传值,有返回值。

public class MainActivity extends Activity {

private TextView textView1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("oncreate...");
textView1.findViewById(R.id.textView1);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

Intent intent=new Intent(MainActivity.this, activity2.class);
intent.putExtra("txt", "hello world");
startActivityForResult(intent, 100);

}
});

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==100)
{
if(resultCode==1)
{
String name=getIntent().getStringExtra("name");
textView1.setText(name);
}
}

}
}


public class activity2 extends Activity {

EditText etEditText;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);
etEditText=(EditText) findViewById(R.id.et);
findViewById(R.id.btnclose).setOnClickListener(new OnClickListener() {

public void onClick(View v) {

Intent intent=new Intent();
String txtString=etEditText.getText().toString();
intent.putExtra("name", txtString);
setResult(1, intent);
finish();
}
});
}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: