Android学习笔记(三)——使用静态变量传递数据
2014-04-05 22:18
253 查看
1、使用Intent可以很方便地在不同的Activity间传递数据,这个也是官方推荐的方式,但是也有一定的局限性,就是Intent无法传递不能序列化的对象,然而这个问题可以用静态变量来解决~
2、下面来具体举个例子,新建一个Android工程,如下图:
3、在布局文件(“res/layout”)中添加按钮“Button”,代码如下:
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="使用静态变量传递数据" />4、在当前目录下再建一个布局文件“other.xml”,在其中添加一个“TextView”标签,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/msg"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</TextView>
</LinearLayout>5、右击“src”下的包,新建类“OtherActivity”并使其继承“Activity”,在这个类中添加“onCreate”方法,并在其中添加成员“textview”、“name”、“age”,最后将其值设置给“textview”,代码如下:
package com.android.myintent;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class OtherActivity extends Activity {
private TextView textview; // 添加一个静态变量
// 欲传递数据,添加一个public属性的静态变量
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);// 加载布局文件
textview = (TextView) this.findViewById(R.id.msg);// 查找并加载
textview.setText("-name-->>" + name + "\n" + "-age-->>" + age);
}
public OtherActivity() {
// TODO Auto-generated constructor stub
}
}
6、在“Main.java”里添加一个“Button”类型成员,设置点击事件,并创建意图为OtherActivity中的静态变量赋值,代码如下:
package com.android.myintent;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class Main extends Activity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 声明一个意图
Intent intent = new Intent();// 可以构造一个空意图,在下面传递类
intent.setClass(Main.this, OtherActivity.class);
OtherActivity.age = 23;
OtherActivity.name = "Jack";
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
7、在“AndroidManifest.xml”中添加一个“activity.xml”设置,“name”为“.OtherActivity”,使系统能找到该类,代码:
<activity android:name=".OtherActivity" >
</activity>8、运行程序,结果截图如下:
Ps:My second Android Application~
2、下面来具体举个例子,新建一个Android工程,如下图:
3、在布局文件(“res/layout”)中添加按钮“Button”,代码如下:
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="使用静态变量传递数据" />4、在当前目录下再建一个布局文件“other.xml”,在其中添加一个“TextView”标签,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/msg"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</TextView>
</LinearLayout>5、右击“src”下的包,新建类“OtherActivity”并使其继承“Activity”,在这个类中添加“onCreate”方法,并在其中添加成员“textview”、“name”、“age”,最后将其值设置给“textview”,代码如下:
package com.android.myintent;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class OtherActivity extends Activity {
private TextView textview; // 添加一个静态变量
// 欲传递数据,添加一个public属性的静态变量
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);// 加载布局文件
textview = (TextView) this.findViewById(R.id.msg);// 查找并加载
textview.setText("-name-->>" + name + "\n" + "-age-->>" + age);
}
public OtherActivity() {
// TODO Auto-generated constructor stub
}
}
6、在“Main.java”里添加一个“Button”类型成员,设置点击事件,并创建意图为OtherActivity中的静态变量赋值,代码如下:
package com.android.myintent;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class Main extends Activity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 声明一个意图
Intent intent = new Intent();// 可以构造一个空意图,在下面传递类
intent.setClass(Main.this, OtherActivity.class);
OtherActivity.age = 23;
OtherActivity.name = "Jack";
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
7、在“AndroidManifest.xml”中添加一个“activity.xml”设置,“name”为“.OtherActivity”,使系统能找到该类,代码:
<activity android:name=".OtherActivity" >
</activity>8、运行程序,结果截图如下:
Ps:My second Android Application~
相关文章推荐
- Android入门篇三:使用静态变量在Activity之间传递数据
- android之 在Activity之间使用意图传递数据(使用静态变量传递数据)
- Android学习笔记(十二)——使用意图传递数据的几种方式
- android开发入门-2(使用静态变量传递数据)
- android 使用静态变量传递数据
- Android学习笔记(十二)——使用意图传递数据的几种方式
- 意图(Intent)讲解4:安卓使用意图(Intent)静态变量方法传递数据
- Android使用静态变量传递数据
- [Android]使用静态变量传递数据
- 安卓学习笔记(四)、使用静态变量传递数据
- 使用静态变量传递数据
- Android学习备忘010——使用静态变量在Activity之间传递数据
- Android学习笔记3 使用Intent传递复杂的数据(对象,List<Object>等)
- Android入门篇三:使用静态变量在Activity之间传递数据
- 在数据绑定控件中使用LinkButton传递参数方法
- 动态sql语句基本语法(字段名,表名,数据库名之类作为变量时,必须用动态SQL如ALTER TABLE中使用程序传递的参数)
- Android 使用意图传递数据
- Android中级教程(三)之不同Activity之间的数据传递---Bundle对象的使用!
- 如何使用jQuery向asp.net Mvc传递复杂json数据-Filter篇
- Android中使用gzip传递数据