简体   繁体   中英

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

I Have a problem:

i have a button that when i click is calling another screen and in this screen i have ListView i went to insert in my button the result of the selected item of my ListView

someone have an idea how to do that?

Thanks for your help!!!

You should use , StartActivityForResult() to call another activity and get the result from second Activity to firstActivity.
Check this link
http://developer.android.com/guide/appendix/faq/commontasks.html

search for "Returning a Result from a Screen" in that page. That should help you.

You should override method onActivityResult (int requestCode, int resultCode, Intent data) in your first activity and start the second screen via startActivityForResult (Intent intent, int requestCode) . When you select the item in list view pass the result via setResult (int resultCode, Intent data) (put data into intent - putExtra method). You can get result from intent, which passed into onActivityResult in first activity UPDATE manifest <application> section

<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>

Screen layout

    <?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>

1st activity code

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

2nd activity code

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

If the other activity is just for the listing of options I suggest you use a spinner in your first activity itself. : http://developer.android.com/reference/android/widget/Spinner.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM