无法显示从一个意图到另一个意图的值

时间:2013-02-03 17:10:31

标签: android android-intent

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

我使用过的代码是......

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);

}

似乎是什么错误? Plz帮助guyz。

我将代码更改为

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 intent中显示任何内容

2 个答案:

答案 0 :(得分:1)

在启动新活动后,您将extra提供给意图 。因此,一旦你推出了新的活动,你就永远无法获得你想要的额外费用。

这意味着你应该改变你的代码:

 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);
}

这允许在合适的时间将额外的内容提供给意图。

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

答案 1 :(得分: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);