页面跳转并传递数据
想要实现一个文本视图,一个文本框,一个按钮,
点击按钮跳转到界面二,在页面二的文本视图显示页面一文本框中的内容
该怎么办呢?
要点: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广播接收器。