簡體   English   中英

需要在我的按鈕的ListView中顯示所選項目的結果

[英]Need to show the result of the selected item in my ListView to my button

我有個問題:

我有一個按鈕,當我單擊該按鈕時會調用另一個屏幕,並且在此屏幕中我具有ListView,因此我想在按鈕中插入ListView所選項目的結果

有人有一個想法怎么做?

謝謝你的幫助!!!

您應該使用StartActivityForResult()來調用另一個活動,並將結果從第二個活動獲取到firstActivity。
檢查此鏈接
http://developer.android.com/guide/appendix/faq/commontasks.html

在該頁面中搜索“從屏幕返回結果”。 那應該對你有幫助。

您應該在第一個活動中覆蓋onActivityResult (int requestCode, int resultCode, Intent data)方法onActivityResult (int requestCode, int resultCode, Intent data) ,並通過startActivityForResult (Intent intent, int requestCode)啟動第二個屏幕。 當您在列表視圖中選擇項目時,通過setResult (int resultCode, Intent data) (將數據放入intent- putExtra方法)傳遞結果。 您可以從intent中獲取結果,該intent在第一個活動UPDATE清單<application>部分中傳遞到onActivityResult

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

第二活動代碼

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

如果其他活動僅用於列出選項,我建議您在第一個活動本身中使用微調器。 http : //developer.android.com/reference/android/widget/Spinner.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM