日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了如何在Android中使用保存的實(shí)例狀態(tài)和恢復(fù)帶有微調(diào)的實(shí)例狀態(tài)?的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我的活動中有一個帶有選項(xiàng)列表的微調(diào)工具

當(dāng)用戶選擇一個選項(xiàng)時(shí),我使用OnItemSelected適配器來獲取所選選項(xiàng)的位置值,并在其中添加了一些If Else語句。If語句實(shí)際上從預(yù)定義的數(shù)據(jù)庫生成一個隨機(jī)字符串并顯示在TextView上。

現(xiàn)在我將切換回另一個練習(xí),并再次返回到此練習(xí)。現(xiàn)在的問題是,默認(rèn)情況下,微調(diào)控件的第一個選項(xiàng)僅處于選中狀態(tài),我需要使用用戶最后選擇的選項(xiàng)進(jìn)行更新,當(dāng)活動再次啟動時(shí),必須運(yùn)行該選項(xiàng)的功能。

我也做了一些搜索,發(fā)現(xiàn)可以使用onSaveInstanceStateonRestoreInstanceStateNOW:

如何使用這兩個?應(yīng)該將它們放在哪里:onItemSelected(適配器)內(nèi)部還是外部?
如何將用戶選擇的新位置值更新(或存儲)為隨機(jī)生成的代碼?

為清楚起見,請檢查我的代碼:

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_scheduledactivity);

    /**displayed when the activity is launched (this should be 
    updated with the user selected option)**/
    Resources res = getResources();
    myString = res.getStringArray(R.array.normal); 
    String q = myString[rgenerator.nextInt(myString.length)];
    TextView tv = (TextView) findViewById(R.id.text1);
    tv.setText(q);

    //initiating the spinner
      Spinner s = (Spinner) findViewById( R.id.spinner);
      s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
            @Override
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
 if (pos == 1){

     //displayed on the time when user selects the option
     Resources res = getResources();
     myString = res.getStringArray(R.array.hardships); 
     String q = myString[rgenerator.nextInt(myString.length)];
     TextView tv = (TextView) findViewById(R.id.text1);
     tv.setText(q);

     }

else {
    //do nothing
     }

編輯后的問題:

為了更清楚起見,我對問題進(jìn)行了編輯。基本上我想做的是,我想保存他們的用戶選擇的位置,與微調(diào)。當(dāng)用戶點(diǎn)擊”Thankyou”Button時(shí),活動將結(jié)束,并在幾分鐘后由來自不同班級的廣播接收器呼叫開始。當(dāng)活動再次開始時(shí),用戶的最后一個選定選項(xiàng)(上一個活動)必須作為此活動中的默認(rèn)選項(xiàng)。

我認(rèn)為如果您查看代碼,問題出在保存和還原實(shí)例狀態(tài)。

請看我的代碼:

import java.util.Random;
import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class MyScheduledActivity extends Activity {

    private String[] myString;
    private static final Random rgenerator = new Random();
    protected int mPos;
  protected String mSelection;
  String situation[] = {"Normal","Hardship","Sadness","Exam"};

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_scheduledactivity);


    if (mPos == 0) {
    Resources res = getResources();
    myString = res.getStringArray(R.array.normal); 
    String q = myString[rgenerator.nextInt(myString.length)];
    TextView tv = (TextView) findViewById(R.id.text1);
    tv.setText(q);
    }

        //selection of the spinner
        Spinner s = (Spinner) findViewById( R.id.spinner);

        // Application of the Array to the Spinner
            ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,   android.R.layout.simple_spinner_item, situation);
            spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s.setAdapter(spinnerArrayAdapter);

            s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {

                    MyScheduledActivity.this.mPos = pos;
                    MyScheduledActivity.this.mSelection = parent.getItemAtPosition(pos).toString();

                    //display toast                     
                    Toast.makeText(parent.getContext(), "The Situation is " +
                    parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();

                    if (mPos == 0){

                        Resources res = getResources();
                        myString = res.getStringArray(R.array.hardships); 
                        String q = myString[rgenerator.nextInt(myString.length)];
                        TextView tv = (TextView) findViewById(R.id.text1);
                        tv.setText(q);

                    }

                    if (mPos == 1){

                        Resources res = getResources();
                        myString = res.getStringArray(R.array.hardships); 
                        String q = myString[rgenerator.nextInt(myString.length)];
                        TextView tv = (TextView) findViewById(R.id.text1);
                        tv.setText(q);

                    }

                    else {
                        //do nothing
                         }

                }

                @Override
                public void onNothingSelected(AdapterView<?> parentView) {
                //do something else
                    return;
                }
                });


    //dismiss button - Thank You
    Button buttonDismiss = (Button)findViewById(R.id.dismiss);

    buttonDismiss.setOnClickListener(new Button.OnClickListener(){

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                finish();
            }});

}

@Override
protected void onSaveInstanceState(Bundle outState) {
    outState.putStringArray(mSelection, situation);
    super.onSaveInstanceState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    situation = savedInstanceState.getStringArray("mSelection");
    super.onRestoreInstanceState(savedInstanceState);
}


}

This is how the activity looks

推薦答案

在當(dāng)前活動中,重寫名為onSaveInstanceState()的方法,并將數(shù)據(jù)放入包中。

并覆蓋另一個方法onRestoreInstanceState()并從包中獲取這些值…

這篇關(guān)于如何在Android中使用保存的實(shí)例狀態(tài)和恢復(fù)帶有微調(diào)的實(shí)例狀態(tài)?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標(biāo)簽:保存 如何在 實(shí)例 帶有 微調(diào) 恢復(fù) 狀態(tài)
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定