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); } }
相关推荐
huha 2020-10-16
xfcyhades 2020-11-20
sgafdsg 2020-11-04
Michael 2020-11-03
fengyeezju 2020-10-14
ziyexiaoxiao 2020-10-14
业余架构师 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