以下是我的代码简介:
C类:
public class ClassC extends Activity {
public static int Result;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.ClassC);
final CheckBox cb = (CheckBox) findViewById(R.id.CheckBox);
Button b1 = (Button) findViewById(R.id.Calculate);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean b = cb.isChecked();
if (ClassA.MyVazn() < 251 ){
Result = 26500;
}
else if (ClassA.MyVazn() >= 251 && ClassA.MyVazn() <= 500){
Result = 31800;
}
else {
Result = 38700;
}
if (b){
Result += 12000;
}
Intent a = new Intent (ClassC.this,ClassD.class);
startActivity(a);
overridePendingTransition(R.anim.a,R.anim.b);
}
}
public static int FinalResult (){
return Result;
}
}
D类
public class ClassD extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.ClassD);
TextView r = (TextView) findViewById(R.id.Result);
r.setText(String.valueOf(ClassC.FinalResult()));
}
}
帮助plz :(
答案 0 :(得分:0)
在点击某些内容之前,Result
似乎未计算ClassC
,但您尝试使用ClassD
的{{1}}方法阅读它,在计算发生之前。
您可能需要将以下行移至代码的某些部分,>>点击后。
onCreate
答案 1 :(得分:0)
因为C类可能不再存在了。将结果发送到意图
Intent a = new Intent (ClassC.this,ClassD.class);
a.putExtra("result",result);
startActivity(a);
然后在你的ClassD得到它
Intent i = getIntent();
int resultFromActivity = i.getIntExtra("result",someDefaultValue);
TextView r = (TextView) findViewById(R.id.Result);
r.setText(String.valueOf(resultFromActivity));
答案 2 :(得分:0)
感谢所有,但我发现了我的问题,这里的代码都没问题,而且我的ClassB从未编译的问题因为定义了一些代码在某些特殊条件下跳过它! 然后我试图在ClassB中获得我的方法的价值!!