Activity傳值問題

2021-07-23 05:29:14 字數 1214 閱讀 5425

昨天去完美面試,實力炮灰,問了這個問題沒答上來,現在仔細看看。。。

activity傳值的話主要是:

1.intent傳值

2.static變數傳值

4.clipboardmanager(剪下板)的傳值。

5.資料庫的傳值

主要說下前兩種:

1、intent 的傳值。

intent intent = new intent(this, 要跳轉的activity.class);

intent.putextra("變數名","值");

stratactivity(intent);

另外一種方式是 ou0618 同學指出的。

intent it = new intent(this, 要跳轉的activity.class);

bundle bundle=new bundle();

bundle.putstring("變數名", "值");

it.putextras(bundle);

startactivity(it);

這樣在「要跳轉的activity」 裡面就可以進行引數接收。

關於接收引數這裡也說一下吧。兩種方法的接收方式是一樣的。

bundle extras = getintent().getextras();

string 接收的變數 = extras.getstring("變數名");

這樣的傳值方式相信是大家剛接觸 android 時候最先了解的。

優勢:最先被學習,理解難度不高,不存在資源釋放的考慮

劣勢:只能在兩個activity之間進行傳值,如果多個activity裡面進行傳值,則需要儲存變數進行多次傳遞,**的複雜度增加,也不容易維護。

好了,接下來希望是朋友們來進行完善,提出更多的方式。當然也希望大家指出彼此之間提出來的方案的問題。

2、靜態變數的傳值。

生命乙個靜態變數儲存類。 public class statemanager

然後生命乙個靜態變數

public static string username;

在頁面跳轉之前,使用 statemanager.username 進行賦值。 在跳轉之後的頁面進行獲取。

優勢:使用方便,可以統一管理,容易維護。

劣勢:靜態變數的方式在理解上比intent 稍難。同時存在釋放機制的處理問題(這裡需要比較謹慎的對待。)

這種方式是我個人推薦的方式。

其他三種:

多個Activity之間傳值

本章將借用乙個例項,講解如何註冊並啟用乙個新的activity,以及多個activity之間如何傳值。下面是主activity的 在相同包下,新建乙個類,繼承至activity這個類,重寫oncreate方法.下面是布局檔案main.xml 下面是布局檔案other.xml 最後,注意修改專案清單檔...

Activity之間的傳值

activity之間的傳值 方法1 1給2傳值 activity1 final intent intent new intent mctx,activity1.class 將當前使用者傳遞下去 intent.putextra user muser startactivity intent 裡邊mus...

Activity跳轉傳值的方式

一 普通的intent的傳值,oneactivity中intent.putextra twoactivity中intent.get extra 二 通過startactivityforresult onactivityresult setresult oneactivity中startactivit...