2011-03-13 40 views

回答

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> 

1日活动代码

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); 
     } 
    } 
} 

第二个活动传入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 2011-03-14 15:35:26

+0

更新评论与示例代码 – 2011-03-14 16:51:35

+0

非常感谢您的帮助惊人的工作! – dirko 2011-03-15 09:24:36

相关问题