2014-12-05 3 views
-1

나는 다양한 activity.I에서 문자열을 검색하려면 하나의 상위 활동을 가지고, 그 안에는 5 버튼이 있습니다. 각 버튼은 자식 activity.From 첫 번째 자식 활동을 intent.then 사용하여 문자열을 부모 활동에 전달 오전 두 번째 자식 활동을 부모 활동에 연결합니다. 결과가 표시되지만 첫 번째 자식 활동 값이 null로 바뀝니다. 마찬가지로 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'가 null의 의미합니까? –

+0

이 값은 hall1.setText (String.valueOf (value))가되었습니다. –

+0

그래서'extras'는 null이 아니지만'String'을 얻을 수 없습니까? –

답변

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

번들도 사용했지만 똑같은 일이 발생했습니다 –

+0

나는 내 대답을 편집했습니다. 또한'String.valueOf (value)'를 더 잘 제거 할 수 있습니다. 왜? 'value'는 이미 문자열입니다. – Harry

+0

또한 '번들'을 저장하는 방법에주의하십시오. 그것은'i1.putExtras (extras)'를 사용하고's'없이'i1.putExtra (extras)'를 사용해서는 안됩니다. – Harry

관련 문제