我想填写对象myRule的所有属性,基于类MRule,我创建了几个活动来做到这一点, 一个Activity传递名称并启用,一个Activity传递onlyNumberList,exceptNumberList等... 并使用Back和Next按钮切换不同的Activity。
因为Intent.putExtra无法传递对象,所以我打算创建一个公共静态对象staticMRule作为与活动之间的共享var,是否可以?
并且,有更好的方法吗?
Public static MRule staticMRule;
public class MRule {
public int ruleID;
public String name;
public Boolean enabled;
public IncomingType incomingType;
public List<String> onlyNumberList;
public List<String> exceptNumberList;
public List<String> receiverNumberList; //短信转发到的号码
public MRule(){
onlyNumberList=new ArrayList<String>();
exceptNumberList=new ArrayList<String>();
receiverNumberList=new ArrayList<String>();
}
}
public class activity1 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
Button btnNext = (Button) findViewById(R.id.btnClose);
btnNext.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
staticMRule.name="a";
}
});
}
}
public class activity2 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);
Button btnNext = (Button) findViewById(R.id.btnClose);
btnNext.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
staticMRule.enabled=false;
}
});
}
}
答案 0 :(得分:1)
Application
类是可以维护全局变量的基类。可以通过从它扩展自己的类并在AndroidManifest.xml
的标记中指定该类来覆盖Application类。
Application
类。创建静态单例可以达到目的,而不是扩展和重写Application类。
以下代码可以使用
public class YourApplication extends Application
{
private int result = 0;
public int getResult() {
return result;
}
public void setResult(int result) {
this.result= result;
}
}
要访问它,
YourApplication app = ((YourApplication)this.getApplication());
app.setResult(100);
//...
int result = app.getResult();
<强>参考强>
答案 1 :(得分:0)
你可以创建实现parcelable的类,然后你可以使用Intent.putExtra(key,ObjOfYourParcelableClass)轻松传递该类的Object
答案 2 :(得分:0)