2014-12-05 85 views
-1

我想从各种活动中检索一个字符串。我有一个父活动,其中有5个按钮。每个按钮都有子活动。从第一个子活动中,我使用intent将字符串传递给父活动。然后,我想从字符串中获取字符串第二个孩子活动对父活动。我得到的结果,但第一个孩子的活动值更改为null.Likewise我想从儿童活动获得5个不同的值主要活动。如何从主要活动中的各种活动中获得价值。

在此先感谢这里是我的代码。

public class bhk1 extends Activity 
{ 
    Button bed,hall,kitchen,br,upload; 
    TextView hall1,bedrom,kitc,bath; 
String value,value1; 
    protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.bhk1); 
    bed=(Button)findViewById(id.button1); 
    hall=(Button)findViewById(id.button2); 
    kitchen=(Button)findViewById(id.button3); 
    br=(Button)findViewById(id.button4); 
    upload=(Button)findViewById(id.upload); 

    hall1=(TextView)findViewById(id.hall); 
    bedrom=(TextView)findViewById(id.bedrrom); 
    kitc=(TextView)findViewById(id.kitchen); 
    bath=(TextView)findViewById(id.bathroom); 

/* Intent intent = getIntent(); 
    String value = intent.getExtras().getString("hall1"); 
    System.out.println(value); 
    hall1.setText(String.valueOf(value));*/ 



    Bundle extras = getIntent().getExtras(); 

    if (extras != null) { 
     value = extras.getString("hall1"); 
     System.out.println(value); 
     hall1.setText(String.valueOf(value)); 

     value1 = extras.getString("bedroom"); 
     System.out.println(value1); 
     bedrom.setText(String.valueOf(value1)); 

    } 





    // hall1.setText(String.valueOf(value)); 







    hall.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      bhk1.this.startActivity(new Intent(bhk1.this, recordhall1.class)); 
     } 


     }); 

    bed.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      bhk1.this.startActivity(new Intent(bhk1.this, recordbed1.class)); 

     } 


     }); 
    kitchen.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      bhk1.this.startActivity(new Intent(bhk1.this, recordkitchen1.class)); 
     } 


     }); 
    br.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      bhk1.this.startActivity(new Intent(bhk1.this, recordbr1.class)); 
     } 


     }); 

    upload.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      bhk1.this.startActivity(new Intent(bhk1.this, recordbr1.class)); 
     } 


     }); 


} 

}

*recordhall1.java* 
    String hall1=String.valueOf((fileUri.getPath())); 
       Intent i1 = new Intent(recordhall1.this, bhk1.class); 
       i1.putExtra("hall1", hall1); 
       startActivity(i1); 


    *recordbedroom.java* 
String bedroom=String.valueOf((fileUri.getPath())); 

       Intent i = new Intent(recordbed1.this, bhk1.class); 
       i.putExtra("bedroom",bedroom); 
       startActivity(i); 
+0

你的意思是'extras'为空? – 2014-12-05 07:06:56

+0

此值变为hall1.setText(String.valueOf(value)); – 2014-12-05 07:10:45

+0

所以'extras'不是null,但是你不能得到'String'? – 2014-12-05 07:15:16

回答

0

之所以你从其他活动不能获得价值是因为这不是得到额外的正确道路。当你存储的意向额外这样的:

String hall1=String.valueOf((fileUri.getPath())); 
Intent i1 = new Intent(recordhall1.this, bhk1.class); 
i1.putExtra("hall1", hall1); 
startActivity(i1); 

那么你应该使用下面的代码来获取额外

value = getIntent().getStringExtra("hall1"); 
System.out.println(value); 
hall1.setText(value); 

你的代码返回,因为你从来没有把捆绑作为意图额外

编辑:

上面的代码,如果你不使用捆绑工作。但是,如果你使用软件包:

String hall1=String.valueOf((fileUri.getPath())); 
Bundle extras = new Bundle(); 
extras.putString("hall1", hall1); 
Intent i1 = new Intent(recordhall1.this, bhk1.class); 
i1.putExtras(extras); 
startActivity(i1); 

然后,你可以用下面的代码获得额外:

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    value = extras.getString("hall1"); 
    System.out.println(value); 
    hall1.setText(value); 
} 
+0

我用捆绑也同样的事情正在发生 – 2014-12-05 07:43:01

+0

我编辑了我的答案。另外你最好删除'String.valueOf(value)'。为什么?因为'value'已经是一个字符串了。 – Harry 2014-12-05 08:02:46

+0

还要注意你如何存储'Bundle'。它必须使用'i1.putExtras(extras)',而不是''1.putExtra(extras)'不带's'。 – Harry 2014-12-05 08:10:17

相关问题