检查get intent是否为null,将0插入列

时间:2016-01-05 18:16:04

标签: android android-intent

我的Android应用活动中有两个流程。

  
      
  1. A>> B>> ç
  2.   
  3. A>> ç
  4.   

活动C有一个保存按钮,用于保存A和B的值传递。

活动C

 weather = getIntent().getExtras().getString("Weather"); //pass from A
 date2 = getIntent().getExtras().getString("date2"); //pass from A
 status = getIntent().getExtras().getString("Status"); // pass from B
 Sub = getIntent().getExtras().getString("sub"); // pass from B

 btnSubmit.setOnClickListener(new View.OnClickListener() { // sumbit button is clicked
            public void onClick(View arg0) {
           insertA(weather, date2);
           insertB(status,Sub,idA);
           insertC(food,idA);
            }
        });

注意到idA始终与表A ID相同

表A

ID  Weather   date
1    sunny     1/6
2    rainy     2/6

表B

ID    status   Sub   idA
1     work     2      1
2     work     1      2

表C

ID    food    idA
1     rice      1
2    noodles    2

如果数据来自第一个流,则可以正确插入数据。现在的问题是,当它来自第二流时,没有任何内容插入到表B中,包括IdA。如何在表B列中插入0,即status和sub,以便插入idA?

感谢。

表B

我想要这样的东西

表B

ID    status   Sub   idA
1     0         0     1   // if it is from second flow
2     work      1     2

不是这个

表B (第二次插入数据时)

ID    status   Sub   idA
1    work     1       2

1 个答案:

答案 0 :(得分:1)

在第二个流程中,不传递status和Sub。因此getExtras()为这些值返回null。这就是为什么它没有被添加到数据库中(可能是因为dabase设计限制。就像not null)。

所以,尝试改变你的代码,

status = getIntent().getExtras().getString("Status", "0"); 
Sub = getIntent().getExtras().getString("sub", "0"); 

这里,第二个参数是默认值,如果为null则将传递。在第二流" 0"将被传递为null。