国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

36.activity返回攜帶數據

2019-11-09 17:26:48
字體:
來源:轉載
供稿:網友

有時候需要activity返回的時候攜帶數據返回,比如短信群發,添加多個聯系人的時候,需要選擇listView里面的聯系人,同時把聯系人的數據返回。

首先需要在主activity里面設置意圖,進行跳轉,使用startActivityForResult而不是startActivity

  	Intent intent = new Intent(this, contactActivity.class);    	//啟動選擇聯系人的activity    	//告訴系統這個activity返回時會返回數據,第二個參數是請求碼    	startActivityForResult(intent, 10);

跳轉到界面以后,封裝數據準備攜帶數據返回

	Intent data = new Intent();	//把要傳遞的數據封裝到intent對象	data.putExtra("name", objects[position]);	//data就是intent攜帶的數據,此activity一旦被銷毀data就會傳遞到此activity中	setResult(0, data);  //第一個參數是響應碼	//銷毀當前的activity	finish();設置條目監聽使用setOnItemClickListener
        lv.setOnItemClickListener(new OnItemClickListener(){        	//position:用戶點擊率哪一個條目			@Override			public void onItemClick(AdapterView<?> parent, View view,					int position, long id) {							}        });獲取到封裝的數據返回,執行onActivityResult(int requestCode, int resultCode, Intent data)來反饋獲取的數據

當一個應該返回數據的activity被銷毀的時候,此方法調用,用于接受數據

    @Override    PRotected void onActivityResult(int requestCode, int resultCode, Intent data){    	super.onActivityResult(requestCode, resultCode, data);    }

請求碼和響應碼,主要是針對請求不同的activity用請求不同的activty,同時一個activity里面有不同的返回數據需要返回碼來區分

示例代碼:

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity"     android:orientation="vertical"    >    <LinearLayout         android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal"        >	    <EditText	        android:id="@+id/et_name"	        android:layout_weight="1"	        android:layout_width="wrap_content"	        android:layout_height="wrap_content"	        android:hint="請輸入聯系人" />  	    <Button 	        android:layout_width="wrap_content"	        android:layout_height="wrap_content"	        android:text="請選擇聯系人"	        android:onClick="click1"	        />      </LinearLayout>	<EditText 	    android:layout_width="match_parent"        android:layout_height="wrap_content"        android:lines="5"	    />	<Button 	    android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="發送"        android:onClick="click2"	    /></LinearLayout>MainActivity.java

package com.ldw.contact;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.EditText;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void click1(View v){    	Intent intent = new Intent(this, contactActivity.class);    	//啟動選擇聯系人的activity    	//告訴系統這個activity返回時會返回數據    	startActivityForResult(intent, 10);    }        //當一個應該返回數據的activity被銷毀的時候,此方法調用,用于接受數據    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data){    	//根據請求碼判斷哪一個activity,接受哪一個activity返回的數據    	if(requestCode == 10){    	EditText et_name = (EditText) findViewById(R.id.et_name);    	//獲取到傳遞過來的參數    	et_name.setText(data.getStringExtra("name"));    	}    	super.onActivityResult(requestCode, resultCode, data);    }    }activity_contact.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >        <ListView         android:id="@+id/lv"        android:layout_width="match_parent"        android:layout_height="match_parent"        ></ListView></LinearLayout>

item_contact.xml聯系人條目

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >        <TextView        android:id="@+id/tv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"                />    </LinearLayout>

contactActivity.java

package com.ldw.contact;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;public class contactActivity extends Activity {		@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_contact);                ListView lv = (ListView) findViewById(R.id.lv);                final String[] objects = new String[]{        "A",        "B",        "C",        "D"        };                lv.setAdapter(new ArrayAdapter<String> (this, R.layout.item_contact, R.id.tv, objects));                //對listView設置條目點擊偵聽,知道什么時候點擊率條目,以及點擊了哪一個條目        lv.setOnItemClickListener(new OnItemClickListener(){        	//position:用戶點擊率哪一個條目			@Override			public void onItemClick(AdapterView<?> parent, View view,					int position, long id) {								Intent data = new Intent();				//把要傳遞的數據封裝到intent對象				data.putExtra("name", objects[position]);				//data就是intent攜帶的數據,此activity一旦被銷毀data就會傳遞到此activity中				setResult(0, data);				//銷毀當前的activity				finish();							}        });	}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巫山县| 孟连| 德令哈市| 彝良县| 错那县| 蛟河市| 凤庆县| 子洲县| 陆良县| 望城县| 蒲江县| 天峨县| 竹山县| 邢台县| 蒲城县| 自贡市| 满洲里市| 宣汉县| 新民市| 弥勒县| 肇东市| 张家口市| 卢氏县| 新龙县| 三原县| 双桥区| 西安市| 仲巴县| 忻州市| 哈尔滨市| 望奎县| 永寿县| 乌鲁木齐县| 福安市| 图木舒克市| 渭南市| 西畴县| 会泽县| 贵阳市| 会泽县| 青州市|