當前位置:首頁 » 安卓系統 » androidactivity數據

androidactivity數據

發布時間: 2023-01-16 01:12:14

㈠ 如何android多Activity間共享數據

方法1:在某個Activity中聲明一個公共的static變數把共享數據作為靜態變數

1
2
3
4
5
6
7
8
9
10

public class OneActivity extends Activity {
public static Data data = null;//聲明的變數

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
data = new Data();
}
}

1
2
3
4
5
6
7

public class TwoActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Data data = OneActivity.data;
}

但是這樣會增加activity之間的耦合度,不是很好
方法二:把共享數據作為放在Applicaiton中
定義一個MyApplication繼承於Application

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

public class MyApplication extends Application{

private Data data;
@Override
public void onCreate() {
super.onCreate();
data = new Data();
}

public Data getData(){
return data;
}
public void setData(Data data){
this.data = data;
}
}

將MyApplication配置到清單文件中作為程序啟動的ApplicationContext
設置Application的name屬性即可

在Activity中獲取數據

1
2
3
4
5
6
7
8
9

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyApplication application = (MyApplication) getApplication();
Data data = application.getData();
}
}

㈡ 如何android多Activity間共享數據

方法1:在某個Activity中聲明一個公共的static變數把共享數據作為靜態變數

java">{
publicstaticDatadata=null;//聲明的變數

@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
data=newData();
}
}
{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Datadata=OneActivity.data;
}

但是這樣會增加activity之間的耦合度,不是很好

方法二:把共享數據作為放在Applicaiton中

定義一個MyApplication繼承於Application

{

privateDatadata;
@Override
publicvoidonCreate(){
super.onCreate();
data=newData();
}

publicDatagetData(){
returndata;
}
publicvoidsetData(Datadata){
this.data=data;
}
}

將MyApplication配置到清單文件中作為程序啟動的ApplicationContext

設置Application的name屬性即可


在Activity中獲取數據

{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyApplicationapplication=(MyApplication)getApplication();
Datadata=application.getData();
}
}

㈢ android activity之間怎麼傳對象數據

StartActivity的時候將數據攜帶到Intent的bundle里,如果要攜帶自定義的對象,你自定義的對象要實現Serializable介面,就是在類里加一個implement Serializable。
然後
Intent intent = new Intent(this, Activity2);
Bundle bundle = new Bundle();
bundle.putSerializable("參數名", 自定義對象);
intent.putExtras(bundle);
startActivity(intent);
就可以把參數帶過去了,
取的時候用
getIntent().getSerializableExtra("參數名")
就可以取到你傳過來的對象了
強轉一下類型就能用了

㈣ 如何在Android開發中activity之間數據傳遞

android各組件之間可以使用Intent來傳遞數據, 這里以ActivityA向ActivityB傳遞數據為例

Intentintent=newIntent(context,ActivityB.class);

//如果context上下文不是Activity的話,需要添加下面這個flag,
if(!(contextinstanceofActivity)){
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
//添加要傳遞的數據
//這里的key到時候ActivityB會用來得到value
//android要求可以傳遞的數據類型包括基本數據類型,
//基本數據類型的數組,CharSequence,以及實現了Parcelable的對象
//putExtra是重載方法,根據value的類型會適當的打包進intent的Bundle對象里
intent.putExtra(key,value);
//或則將數據打包進Bundledata里,然後intent.putExtras(data);

context.startActivity(intent);

在ActivityB中

publicvoidonCreate(BundlesavedInstanceState){
//得到傳遞過來的數據
Bundlebundle=getIntent().getExtras();
//通過getXXX方法來獲取key對應的value
bundle.getXXX(key);
}

㈤ Android開發中 Activity中數據、狀態的保存

1.若是向資料庫中插入數據,保存持久化數據的操作時應放在onpause()中.
protected
void
onpause(){…..
}
2.若保存ui控制項的狀態,
成員變數的值等應放在onsaveinstancestate()中
protected
void
onsaveinstancestate(bundle
outstate)
{....
}

熱點內容
電腦配置點評怎麼選 發布:2025-07-05 02:39:23 瀏覽:1001
如何配置與鋅反應的稀硫酸 發布:2025-07-05 02:39:20 瀏覽:936
php分割文件 發布:2025-07-05 02:22:15 瀏覽:478
sql平均成績語句 發布:2025-07-05 02:11:41 瀏覽:277
java離線 發布:2025-07-05 02:11:35 瀏覽:66
php變數賦值給變數 發布:2025-07-05 02:10:56 瀏覽:558
javaequals方法 發布:2025-07-05 01:57:23 瀏覽:98
sqlsever外鍵 發布:2025-07-05 01:41:04 瀏覽:738
鳳凰衛士加密軟體 發布:2025-07-05 01:39:36 瀏覽:636
桌面軟體編程 發布:2025-07-05 01:32:17 瀏覽:993