在Android中,可以通过静态变量传递数据,类似于iOS中的属性传值,从前一个页面将值传给弹出后的页面。
下面通过一个demo来演示这个过程。
1、在activity_main.xml中增加一个按钮
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="使用静态变量传递数据"/>
</LinearLayout>
2、新建other.xml,即:将要接收值的activity的布局,在此布局文件中添加一个TextView。
<?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:id="@+id/textview1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
3、新建Other.java,在代码文件中声明name和age两个全局静态变量。
package com.example.staticpassvalue;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Other extends Activity {
private TextView textview1;
public static String name;
public static int age;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
textview1 = (TextView)this.findViewById(R.id.textview1);
textview1.setText("name = " + name + "age = " + age);
}
}
4、在MainActivity.java中,为name和age两个静态变量赋值,并通过Intent跳转到Other页面。
package com.example.staticpassvalue;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.os.Build;
public class MainActivity extends ActionBarActivity {
private Button button1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button)this.findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this,Other.class);
Other.name = "tmac";
Other.age = 23;
startActivity(intent);
}
});
}
}