欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android學(xué)習(xí)小結(jié)之Activity保存和恢復(fù)狀態(tài)

 更新時(shí)間:2016年08月12日 14:08:20   作者:xch_yang  
這篇文章主要介紹了Activity狀態(tài)保存和恢復(fù)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

Android中啟動(dòng)一個(gè)Activity如果點(diǎn)擊Home鍵該Activity是不會(huì)被銷毀的,但是當(dāng)進(jìn)行某些操作時(shí)某些數(shù)據(jù)就會(huì)丟失,如下:

Java class:

package com.king.activitytest2;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private EditText editText;
private Button buttonSet,buttonRead;
//定義一個(gè)常量
double pai;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//獲取控件
editText=(EditText)findViewById(R.id.edit1);
buttonSet=(Button) findViewById(R.id.btn_Set);
buttonRead=(Button) findViewById(R.id.btn_Read);
//設(shè)置監(jiān)聽事件
buttonSet.setOnClickListener(this);
buttonRead.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btn_Set:
editText.setText("圓周率為:");
pai=3.141592654;
break;
case R.id.btn_Read:
String str=editText.getText().toString()+pai;
Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();
break;
}
}
}

xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="com.king.activitytest2.MainActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="設(shè)置"
android:id="@+id/btn_Set"
android:layout_marginTop="46dp"
android:layout_below="@+id/edit1"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="35dp"
android:layout_marginStart="35dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="讀取"
android:id="@+id/btn_Read"
android:layout_alignTop="@+id/btn_Set"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="46dp"
android:layout_marginEnd="46dp"
/>
</RelativeLayout>

這里在程序中定義了一個(gè)double類型的變量,當(dāng)我們點(diǎn)擊讀取按鈕時(shí)會(huì)將該變量的值加在后面并顯示,打開程序然后進(jìn)行操作,一切正常:

我們點(diǎn)擊設(shè)置之后將屏幕橫過來,咦,pai跑哪去了?

其實(shí)這里當(dāng)我們進(jìn)行橫豎屏切換時(shí),迫于系統(tǒng)機(jī)制,該Activity已經(jīng)被銷毀了。但是為什么這個(gè)頁面還存在呢,這是因?yàn)檫@個(gè)銷毀并不是用戶去主動(dòng)退出,所以Android系統(tǒng)實(shí)現(xiàn)了這些狀態(tài)的保存功能,但是一些數(shù)據(jù)達(dá)不到被保留的要求,并沒有被保留,就像程序中可憐的pai就被拋棄了!

那我們需要在像這種橫豎屏切換過程中保留數(shù)據(jù)該如何做呢,這里我們就需要重寫onSaveInstanceState()方法:

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//將需要保存的數(shù)據(jù)放入Bundle中
outState.putDouble("pai",pai);
}

保存解決了,那我們?nèi)绾稳〕瞿??很?jiǎn)單,只需要在onCreate()方法中判斷其參數(shù)是否為null,不為null便將其取出。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//將pai保存
if(savedInstanceState!=null)
pai=savedInstanceState.getDouble("pai");
}

現(xiàn)在我們可以看到屏幕切換之后pai也沒有被銷毀。

以上所述是小編給大家介紹的Activity保存和恢復(fù)狀態(tài),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Flutter繪制之路徑聯(lián)合詳解

    Flutter繪制之路徑聯(lián)合詳解

    在Flutter繪制中,path路徑可謂是繪制中的核心,通過path路徑可以繪制出任意的二維圖形,所以本文就來和大家聊聊Flutter中路徑聯(lián)合的相關(guān)知識(shí),感興趣的可以了解一下
    2023-06-06
  • 掌握Android Handler消息機(jī)制核心代碼

    掌握Android Handler消息機(jī)制核心代碼

    該文主要是分析Handler消息機(jī)制的關(guān)鍵源碼,文章會(huì)從對(duì)handler有一些基本的認(rèn)識(shí)開始介紹,內(nèi)容詳細(xì),感興趣的小伙伴可以參考下
    2021-09-09
  • Android自定義控件之繼承ViewGroup創(chuàng)建新容器

    Android自定義控件之繼承ViewGroup創(chuàng)建新容器

    這篇文章主要介紹了Android自定義控件之繼承ViewGroup創(chuàng)建新容器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • android橫豎屏切換不重啟activity解決方案

    android橫豎屏切換不重啟activity解決方案

    部分網(wǎng)友會(huì)發(fā)現(xiàn)Activity在切換到后臺(tái)或布局從橫屏LANDSCAPE切換到PORTRAIT,會(huì)重新切換Activity會(huì)觸發(fā)一次onCreate方法,使用其他的方法同樣可以實(shí)現(xiàn)
    2012-11-11
  • Kotlin-Android之Activity使用詳解

    Kotlin-Android之Activity使用詳解

    這篇文章主要介紹了Kotlin-Android之Activity使用詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • android中NFC讀寫功能的實(shí)現(xiàn)方法

    android中NFC讀寫功能的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了android中NFC讀寫功能的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Android 使用XML做動(dòng)畫UI的深入解析

    Android 使用XML做動(dòng)畫UI的深入解析

    在Android應(yīng)用程序,使用動(dòng)畫效果,能帶給用戶更好的感覺。做動(dòng)畫可以通過XML或Android代碼。本教程中,介紹使用XML來做動(dòng)畫。在這里,介紹基本的動(dòng)畫,如淡入,淡出,旋轉(zhuǎn)等,需要的朋友可以參考下
    2013-07-07
  • 最新評(píng)論