关于android页面跳转传数据的编写

初学android做个了很简单的应用,就是一个页面A跳转到B页面,A页面带有输入文本框和一个按钮,当输入内容后点击按钮将内容跳转到B页面来显示,虽然很简单,但是拙计的想了好几天。。。。
        首先,设定下A页面的界面:

没错,就是这么挫,贼简单,贼难看。。。主要设定的代码:textView1 初始给的,就没删,buttonk1 是按钮,text1 是输入文本框ID

<TextView

        android:id="@+id/textView1"

 

        android:layout_width="wrap_content"

 

        android:layout_height="wrap_content"

 

        android:text="@string/hello_world" />

 

    <Button

 

        android:id="@+id/buttonk1"

 

        android:layout_width="wrap_content"

 

        android:layout_height="wrap_content"

 

        android:layout_alignLeft="@+id/textView1"

 

        android:layout_below="@+id/textView1"

 

        android:text="@string/button_k1"

 

        android:layout_marginTop="18dp" />

 

    <EditText

 

        android:id="@+id/text1"

 

        android:layout_width="wrap_content"

 

        android:layout_height="wrap_content"

 

        android:layout_alignTop="@+id/buttonk1"

 

        android:layout_toRightOf="@+id/textView1"

 

        android:ems="10" >

 

    </EditText>

接 下来写主界面的Activity,名字是MainActivity,这里的按钮点击触发时间什么的就不说了,主要就是将文本字符串用bundle打 包,intent.putExtras(bundle) 写入intent里并发送给第二个activity ( Nextpage) 里,bundle用来携带数据,putString(key, value),key值是给定的字符串,相当于叫什么名字,value就等于要传的值;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) this.findViewById(R.id.buttonk1);
button.setOnClickListener(new OnClickListener());
}
private final class OnClickListener implements View.OnClickListener{
 
@Override
public void onClick(View v) {
EditText text = (EditText) findViewById(R.id.text1);
String txt = text.getText().toString();
Intent intent = new Intent();
intent.setClass(MainActivity.this, Nextpage.class);
Bundle bundle = new Bundle();
bundle.putString("text",txt);
intent.putExtras(bundle);
startActivity(intent);
}
 
}

根据这个写入第二个activity,
Nextpage.java:先用getIntent 得到intent,再用getExtras 得到Intent  的附加数据(就是加入的bundle),
创建一个TextView控件 a1,将text2强制转换成这个类型(text2定义于第二个页面的TextView的id),  a1.setText(bundle.getString("text")) 相当于把bundle的值赋值给了a1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nextpage);
Bundle bundle = this.getIntent().getExtras();
TextView a1 = (TextView) findViewById(R.id.text2);
a1.setText(bundle.getString("text")); 

然后写入第二个界面的界面设定,主要代码是:其中text2 是上面定义控件的id
<TextView
        android:id="@+id/text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
 </TextView>
androidmanifest.xml的配置文档别忘了配下,最后发布下程序

依然这么挫,第一个应用终于搞定了~~

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。