0

我想根据我的复选框状态显示值..

我使用的代码是..

if((cb1).isChecked()==true){
        str="abc";
    }



    public void chk_med(View view){
    Intent intent = new Intent(Medicine.this, chk_med.class);
    Medicine.this.startActivity(intent);
    intent.putExtra("fvr", str);

chk_med 的代码

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.disp_med);
    Bundle extras=getIntent().getExtras();
    String Value1;
    Value1 = extras.getString("fvr");



    TextView t1 = (TextView)findViewById(R.id.show_res);
    t1.setText(Value1);

}

似乎是什么错误?请帮助家伙。

我将代码更改为

public void chk_med(View view){
    Intent intent = new Intent(Medicine.this, chk_med.class);
    intent.putExtra("fvr", a);
    Medicine.this.startActivity(intent);

但它仍然没有显示 chk_med 意图

4

2 回答 2

1

在启动新活动,您将授予extraIntent 。因此,一旦你启动了那个新的 Activity,你就永远不会真正得到你想要的额外的东西。

这意味着你应该改变你的代码,所以它是:

 public void chk_med(View view){
    if(cb1.isChecked())
       str="abc";
    else
       str = "xyz";
    Intent intent = new Intent(Medicine.this, chk_med.class);
    intent.putExtra("fvr", str);
    Medicine.this.startActivity(intent);
}

这允许在正确的时间将额外的内容提供给 Intent。

还要考虑正确的 Java 命名约定:类以大写字母开头,而变量则不是(驼峰式)。

于 2013-02-03T17:13:09.937 回答
0

这些行是乱序的:

Intent intent = new Intent(Medicine.this, chk_med.class);
Medicine.this.startActivity(intent);
intent.putExtra("fvr", str);

改成:

Intent intent = new Intent(Medicine.this, chk_med.class);
intent.putExtra("fvr", str);
Medicine.this.startActivity(intent);
于 2013-02-03T17:13:10.107 回答