页面跳转并传递数据

想要实现一个文本视图,一个文本框,一个按钮,

点击按钮跳转到界面二,在页面二的文本视图显示页面一文本框中的内容

该怎么办呢?

要点:1使用Intent启动Activity

        2使用Intent传递数据

代码:

1:
<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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv"
android:text="还没有内容">
</TextView>

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et">
</EditText>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="dian"
android:text="跳转到第二个页面">
</Button>

 

</LinearLayout>

 

2:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.dome01">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="Java2013"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Dome01">
<activity
android:name=".MainActivity"
android:exported="true"
android:label="1328pyd">

<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
android:name=".HelloActivity"
android:label="第二个页面">
</activity>

</application>

</manifest>

 

3:
package com.example.dome01;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {
private TextView tv;
private EditText et;

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

tv = (TextView)findViewById(R.id.tv);
et = (EditText) findViewById(R.id.et);


}
public void dian(View v){
//1.获取编辑框的值
String s = et.getText().toString();
//2.将值存进Intent
Intent in = new Intent(this,HelloActivity.class);
in.putExtra("s",s);
//3.跳转,如果你跳转过去不需要传数据回来可以使用startActivity(in),
// 如果你还需要传数据回来,用下面这句话跳转
startActivityForResult(in,110);

}

}

 

4:
package com.example.dome01;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;

public class HelloActivity extends Activity {
private TextView tv01;
private EditText et01;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello);

tv01 = (TextView) findViewById(R.id.tv01);
et01 = (EditText) findViewById(R.id.et01);

//接数据,先获取Intent,在从Intent里面拿数据
Intent in = getIntent();
String s = in.getStringExtra("s");
tv01.setText(s);
}
}

 

5:
<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv01"
android:text="还没有内容">
</TextView>

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et01">
</EditText>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="dian"
android:text="跳转到第一个页面">
</Button>
</LinearLayout>

运行结果:

 

跳转后:

 

结论:

重点掌握activity

activity是Android组件中最基本也是最为常见用的四大组件之一。

Android四大组件有Activity,Service服务,Content Provider内容提供,BroadcastReceiver广播接收器。

 

posted @ 2022-04-29 23:02  努力学爪哇  阅读(234)  评论(0编辑  收藏  举报