在这里我要说明的是用intent和全局变量的方法将EditText中输入的文本传递到另一个activity的TextView中
1使用intent传递数据
首先在一个activity中设置一个EditText和一个Button利用监听事件来控制;另外在java文件中声明EditText和一个Button并将他们初始化;
private EditText et1 = null;
Button bt = (Button) findViewById(R.id.button1);
(2)在onClick事件中
Intent intent = new Intent();
intent.setClass(this, FifthActivity.class);
et1 = (EditText) findViewById(R.id.editText1);
String et1String = et1.getText().toString();
intent.putExtra("name",et1String);//name是前后传递的一个名称
startActivity(intent);
(3)在要转到的activity中
private TextView textView4;
private String strname = null;
strname=getIntent().getStringExtra("name"); textView4.setText(strname);
2使用全局变量传递数据
全局变量必须从android.app.Application继承,首先新建一个MyApp的class文件,然后在AndroidManifest.xml中用android:name属性指定全局类名,否则系统不会自动创建全局变量的
package="com.example.sde"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:name=".MyApp"//类名
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".FistActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
然后在监听事件中可以
MyApp myApp=(MyApp)getApplicationContext();
myApp.country = "美国";
Intent intent = new Intent();
intent.setClass(ForthActivity.this, FifthActivity.class);
et1 = (EditText) findViewById(R.id.editText1);//et1参看intent中的代码
String et1String = et1.getText().toString();
myApp.rename = et1String; startActivity(intent);
在要转向的activity中
MyApp myApp = (MyApp) getApplicationContext();//全局变量传递数据
textView5.setText("myapp.country: "+ myApp.country+ myApp.rename +"\nmyapp.data.id:"+myApp.data.id+"\nmyapp.data.name"+ myApp.data.name);
//country、rename、id均为MyApp中的定义