1.1建立第一个App
将编辑框中的文字发送到另一个页面


activtiy_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:showIn="@layout/activity_main">
<EditText
android:id="@+id/edit_message"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:textAllCaps="false"
android:onClick="sendMessage"/>
</LinearLayout>activity_content.xml
<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/content"
tools:context="com.mycompany.myfirstapp.Content">
</RelativeLayout>MainActivity
public class MainActivity extends AppCompatActivity {
/*
为了让新启动的activity能查询extra数据。定义key为一个public型的常量,
通常使用应用程序包名作为前缀来定义键,这样在应用程序与其他应用程序
进行交互时仍可以确保键是唯一的。
*/
public final static String EXTRA_MESSAGE="com.mycompany.myfirstapp.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sendMessage(View view){
/*
在这个Intent构造函数中有两个参数:
第一个参数是Context(之所以用this是因为当前Activity是Context的子类)
第二个参数是接受系统发送Intent的应用组件的Class(在这个案例中,
指将要被启动的activity)
*/
Intent intent=new Intent(this,Content.class);
//用findViewById()方法得到EditText元素
EditText editText= (EditText) findViewById(R.id.edit_message);
//把EditText的文本内容关联到一个本地message变量,并使用putExtra()方法把值传给intent
String message=editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE,message);
/*
Intent可以携带称作extras的键-值对数据类型。
putExtra()方法把键名作为第一个参数,把值作为第二个参数
*/
//调用startActivity完成新activity的启动
startActivity(intent);
}
//运行这个方法,系统收到我们的请求后会实例化在Intent中指定的Activity
}Content
/*
不管用户导航到哪,每个Activity都是通过Intent被调用的。
我们可以通过调用getIntent()来获取启动activity的Intent及其包含的数据。
*/
public class Content extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_content);
//得到intent并赋值给本地变量
Intent intent=getIntent();
//调用getStringExtra提取从MainActivity传递过来的消息
String message=intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
//创建一个对象TextView
TextView textView=new TextView(this);
//用setText()来设置文本字体大小和内容
textView.setTextSize(40);
textView.setText(message);
RelativeLayout layout= (RelativeLayout) findViewById(R.id.content);
layout.addView(textView);
}
} 相关推荐
xfcyhades 2020-11-20
Michael 2020-11-03
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30
绿豆饼 2020-07-28