2011-04-30 2 views
0

안드로이드에서 내 앱에 약간의/큰 문제가 있습니다. 활동 2 개가 있습니다 : 활동 1과 활동 2. Activity1에는 TextView와 Button이 있고 Activity2에는 EditText와 Button이 있습니다. Activity1에서 Acvity2로 이동하여 EditText에서 Activity2의 텍스트를 Activity 1로 보내려고합니다. 코드의 순서를 모르므로 강제 종료됩니다. 어떻게해야합니까? 코드와activity2에서 activity1로 문자열을 보내는 방법은 무엇입니까?


import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class Activity1 extends Activity { 
    TextView txt; 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     txt = (TextView) findViewById(R.id.txt); 

     Button next=(Button)findViewById(R.id.btn); 
     next.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent intent = new Intent(Activity1.this,Activity2.class); 
       startActivityForResult(intent, 0); 
      } 

     }); 
    } 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class Activity2 extends Activity { 
    EditText txt2; 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main2); 

     txt2 = (EditText)findViewById(R.id.txt2); 
     final Bundle bundle = new Bundle(); 
     String x=txt2.getText().toString(); 
     bundle.putString("param",x); 
     Button btn2=(Button)findViewById(R.id.btn2); 
     btn2.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent intent = new Intent(Activity2.this,Activity1.class); 
       intent.putExtra(bundle) 
       finish(); 

      } 

     }); 
      } 
}

답변

0

하나의 문제는 두 번째 활동의 결과를 처리 아무것도 없다는 것입니다 : 여기

감사

내 코드입니다. (첫 번째 활동에는 onActivityResult가 없습니다.)

The notepad tutorial에는 두 번째 활동을 호출하고 결과를 얻는 예의 예가 포함되어 있습니다.

0

활동 1 @override onActivityResult.

및 활동 2에서이 글을 씁니다.

txt2 = (EditText)findViewById(R.id.txt2); 
    final Bundle bundle = new Bundle(); 
    String x=txt2.getText().toString(); 
    bundle.putString("param",x); 
    Button btn2=(Button)findViewById(R.id.btn2); 
    btn2.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent intent = new Intent(); 
      intent.putExtra("param",x); 
      setResult(RESULT_OK, intent); 
      finish(); 

     } 
    }); 
+0

나는이를 넣어 \t 번들 b = getIntent(). getExtras(); \t \t text = b.getString ("param"); \t txt.setText (text);} 여전히 강제 닫기가 있습니다. 이 기능에 무엇을 넣어야합니까? – Gaby

+0

답변을 찾았습니다. 당신의 도움을 주셔서 대단히 감사합니다. – Gaby

+0

동일한 활동에 2 개의 onActivityResult()를 사용할 수 있습니까? – Gaby

0

활동 1 @override onActivityResult.

및 활동 2에서이 글을 씁니다.

txt2 = (EditText) findViewById (R.id.txt2); \t 보호 무효 onActivityResult를 (INT requestCode가, INT의 resultCode, 의도 의도) { \t super.onActivityResult (requestCode가,의 resultCode, 의도) @Override ;

activity1에에서
final Bundle bundle = new Bundle(); 
String x=txt2.getText().toString(); 
Button btn2=(Button)findViewById(R.id.btn2); 
btn2.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     Intent intent = new Intent(); 
     intent.putExtra("param",x); 
     setResult(RESULT_OK, intent); 
     finish(); 
    } 
관련 문제