本篇文章将利用最基本的面向对象的思想进行两个Activity之间传值操作(后附有详细代码):
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.asd);
tv=(TextView)findViewById(R.id.textView1);
trr=myproject.str;//获得上个界面的str变量的值但不应声明为private
tv.setText(trr);
}
我新建了一个.java文件和xml文件,省略绑定操作、跳转操作和权限管理,直接进入正题:
(以传递String为例)
1,定义一个String: public String str="123";
3,在需要接收的.java文件里实例化类:public MainActivity myproject=new MainActivity();//一定要new 否则会错误
4,定义一个接收的String :public String trr=null;
5,接收:trr=myproject.str;
详细代码(多余代码已删除,只实现传值操作):
MainActivity .java
//需要传值的文件
package com.example.zzz;
import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends ActionBarActivity {
public Button btn;
public String str="123";
@Override
public void onClick(View arg0) {
// TODO 自动生成的方法存根
Intent intent=new Intent(MainActivity.this,asd.class);
startActivity(intent);
}
});
//构造函数,可用可不用
}
与MainActivity .java对应的xml文件
asd .java文件
//接收值的文件
package com.example.zzz;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.Button;
import android.widget.TextView;
public class asd extends ActionBarActivity {
public String trr=null;
public TextView tv;
public MainActivity myproject=new MainActivity();//MainActivity 的实例化
}
与asd.java对应的xml文件