2014-12-05 79 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

相關問題