日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用Intent来启动Activity并传递参数

發(fā)布時(shí)間:2024/4/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Intent来启动Activity并传递参数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.背景:

要?jiǎng)?chuàng)建并顯示一個(gè)Activity,可以調(diào)用startActivity,并傳遞給它一個(gè)Intent,如下面的代碼所示:

startActivity(Intent myIntent);

可以構(gòu)造Intent來(lái)顯示地指定要打開的Activity類,或者包含一個(gè)目標(biāo)Activity必須執(zhí)行的動(dòng)作。在后一種情況中,運(yùn)行時(shí)將會(huì)使用一個(gè)稱為“Intent解析(Intent resolution)”的過(guò)程來(lái)動(dòng)態(tài)選擇Activity。

還可以通過(guò)向Intent添加extra來(lái)向目標(biāo)Activity發(fā)送額外的數(shù)據(jù)。

2.實(shí)例

利用startActivity創(chuàng)建并顯示一個(gè)Activity,并向其傳遞數(shù)據(jù)。

1》程序啟動(dòng)時(shí):


其布局代碼如下:

<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"android:orientation="vertical"tools:context="com.demo.parameterdemo.MainActivity" ><EditTextandroid:id="@+id/info_et"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="在這里輸入要傳送的內(nèi)容..." /><Button android:id="@+id/startAnotherActivity"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="開始傳遞"/></LinearLayout>
其中“開始傳遞”的事件處理代碼如下:

// 啟動(dòng)子Activity,并從中獲取返回信息private void startAnotherActivity() {Intent startIntent = new Intent(getApplicationContext(),AnotherActivity.class);startIntent.putExtra(AnotherActivity.RETURN_INFO, infoEditText.getText().toString());/** //也可以使用這種方式 * Bundle argBundle=new Bundle();* argBundle.putString(AnotherActivity.RETURN_INFO,* infoEditText.getText().toString()); * startIntent.putExtras(argBundle);*/startActivity(startIntent);}
2》輸入數(shù)據(jù),如下圖所示


3》點(diǎn)擊“開始傳遞”,如下圖所示


可以看到已經(jīng)成功,那么是如何接收到該數(shù)據(jù)呢?

private void getINFO() {// 獲取傳遞過(guò)來(lái)的信息。String infoString = getIntent().getStringExtra(RETURN_INFO);subTextView.setText(infoString);}
3.詳細(xì)代碼如下:

1》MainActivity.java

package com.demo.parameterdemo;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView;public class MainActivity extends Activity {// 聲明控件private EditText infoEditText;private Button startAnotherButton;// 請(qǐng)求碼private static final int ACTIVITY_REQUEST_CODE = 1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}// 初始化private void init() {// 得到相應(yīng)控件的引用infoEditText = (EditText) findViewById(R.id.info_et);startAnotherButton = (Button) findViewById(R.id.startAnotherActivity);// 注冊(cè)事件startAnotherButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubstartAnotherActivity();}});}// 啟動(dòng)子Activity,并從中獲取返回信息private void startAnotherActivity() {Intent startIntent = new Intent(getApplicationContext(),AnotherActivity.class);startIntent.putExtra(AnotherActivity.RETURN_INFO, infoEditText.getText().toString());/** //也可以使用這種方式 * Bundle argBundle=new Bundle();* argBundle.putString(AnotherActivity.RETURN_INFO,* infoEditText.getText().toString()); * startIntent.putExtras(argBundle);*/startActivity(startIntent);}}
2》SubActivity.java

package com.demo.parameterdemo;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView;public class AnotherActivity extends Activity {// 聲明控件private TextView subTextView;// 用于唯一標(biāo)識(shí)要返回的信息// 應(yīng)該盡量的長(zhǎng),最好加上所在類的全名,即:包名+類名+參數(shù)名public static final String RETURN_INFO = "com.demo.parameterdemo.SubActivity.info";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_another);init();getINFO();}// 初始化private void init() {// 得到相應(yīng)控件引用subTextView = (TextView) findViewById(R.id.subTextView);}private void getINFO() {// 獲取傳遞過(guò)來(lái)的信息。String infoString = getIntent().getStringExtra(RETURN_INFO);subTextView.setText(infoString);}}


總結(jié)

以上是生活随笔為你收集整理的使用Intent来启动Activity并传递参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。