使用intent将数据传递给三个活动

时间:2015-10-07 04:38:32

标签: android sqlite android-intent

我有三项活动,流程应该是Information>> workForce>> workDetailsTable。我使用intent传递数据。但是,当我看到SQLite中存储的数据时,我只能看到WorkForce表中保存的值。我在NULL表中获得Information值。为什么会这样?它只能将数据传递给两个活动吗?

信息

 button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                Intent intent = new Intent(context, WorkForce.class);
                a = spinner.getSelectedItem().toString();
                intent.putExtra("a",a);
                startActivity(intent);
            }
        });

劳动力

button.setOnClickListener
                (
                        new View.OnClickListener() {
                        public void onClick(View v) {
                        Intent intent = new Intent(context, WorkDetailsTable.class);
                         subCon=txt1.getText().toString();
                         startActivity(intent);


                            }
                        }
                );

WorkDetailsTable

 final String name=getIntent().getExtras().getString("a");
 final String subContractors=getIntent().getExtras().getString("subCon");
Button btn1=(Button)findViewById(R.id.button2);
        btn1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {

                ts.insertTimeSheet(name);
                WF.insertWorkForce(subContractors);

2 个答案:

答案 0 :(得分:1)

在启动WorkDetailsTable时,似乎您没有使用Intent传递数据。 您可能希望它看起来像这样:

String name=getIntent().getExtras().getString("a");

button.setOnClickListener
            (
                    new View.OnClickListener() {
                    public void onClick(View v) {
                    Intent intent = new Intent(context, WorkDetailsTable.class);
                     subCon=txt1.getText().toString();
                     intent.putExtra("a",name);
                     intent.putExtra("subCon",subCon);
                     startActivity(intent);


                        }
                    }
            );

但这可能不是你想要做到这一点的最佳方式。您是否考虑过使用SharedPreferences?这将允许您将信息存储在一个活动中,并在任何其他活动中检索。

有一个很好的example here

答案 1 :(得分:0)

您没有将subCon字符串通过intent传递给workdetails表。像你在信息活动中那样传递它们。你也需要从劳动力的意图中获得a的价值,并将意图中的相同值传递给工作细节。

因此,您的WorkForce代码如下所示。

button.setOnClickListener ( new View.OnClickListener() {
      public void onClick(View v) {
          Intent intent = new Intent(context,WorkDetailsTable.class);
          subCon=txt1.getText().toString();
          intent.putExtra("a",getIntent().getExtras().getString("a"));
          intent.putExtra("subCon",subCon);
          startActivity(intent);
      }
    });