2011-03-13 9 views
0

내의 ListView에서 선택된 항목의 결과를 보여주기 위해 필요 내 버튼에 내 ListView의 선택한 항목의 결과를 삽입나는 문제가 내 버튼

누군가가 어떻게 할 생각인가?

도움 주셔서 감사합니다.

답변

0

첫 번째 활동에서 의 onActivityResult (int requestCode, int resultCode, Intent data) 메서드를 재정의하고 startActivityForResult (Intent intent, int requestCode)을 통해 두 번째 화면을 시작해야합니다. 목록보기에서 항목을 선택하면 setResult (int resultCode, Intent data)을 통해 결과를 전달합니다 (데이터를 의도 - putExtra 메소드에 넣음). 먼저 활동 UPDATE 매니페스트 <application> 섹션

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".test1" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="test1.pack.test2"> 
      <intent-filter> 
       <category android:name="android.intent.category.DEFAULT"></category> 
       <action android:name="test1.act2.START"></action> 
      </intent-filter> 
     </activity> 
    </application> 

화면 구성

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<Button android:text="Button" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:id="@+id/btn" 
android:onClick="onBtnClick"></Button> 
</LinearLayout> 

첫번째 활동 코드

public class test1 extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
    public void onBtnClick(View view){ 
     Intent i = new Intent("test1.act2.START"); 
     i.putExtra("btnText", "Hello, from activity 1"); 
     startActivityForResult(i, 0); 
    } 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (data.hasExtra("response")){ 
      Button b = (Button)findViewById(R.id.btn); 
      CharSequence seq = data.getCharSequenceExtra("response"); 
      b.setText(seq); 
     } 
    } 
} 

2 활동에 onActivityResult에 전달 의도에서 결과를 얻을 수 있습니다 코드

public class test2 extends Activity{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Button b = (Button)findViewById(R.id.btn); 
     b.setText(getIntent().getStringExtra("btnText")); 
    } 
    public void onBtnClick(View view){ 
     Intent i = new Intent(); 
     i.putExtra("response", "Response from second"); 
     setResult(Activity.RESULT_OK, i); 
     finish(); 
    } 
} 
+0

전체 예제를 어디서 찾을 수 있습니까? – dirko

+0

예제 코드로 주석 업데이트 –

+0

고맙습니다 대단히 감사합니다. – dirko

0

StartActivityForResult()를 사용하여 다른 활동을 호출하고 두 번째 활동의 결과를 firstActivity로 가져와야합니다.
확인 해당 페이지에서의 "화면에서 결과를 반환"에 대한 링크
http://developer.android.com/guide/appendix/faq/commontasks.html

검색 할 수 있습니다. 그게 도움이 될거야.