[英]How to save the state of my activity after closing it.
我是Android Studio的新手。 我有一個活動,它是打開和關閉音樂的設置。 當我打開音樂時,圖像也會更改為知道音樂已關閉。 但是當我關閉活動時,它又回到了“播放音樂”圖像。 關閉之前如何保存活動的前一個圖像或狀態。 我是否需要類似這樣的保存實例狀態? 這是我的代碼
package com.example.mainmenu;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.DisplayMetrics;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
public class settings extends AppCompatActivity {
private ImageView close;
private ImageView help;
protected void onCreate(final Bundle savedInstanceState) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.custompopup);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
final ImageView sound;
close =(ImageView) findViewById(R.id.txtclose);
sound = (ImageView) findViewById(R.id.button_sound);
help = (ImageView) findViewById(R.id.button_help);
help.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent secondactivtyintent = new Intent(settings.this,
panuto1.class);
startActivity(secondactivtyintent);
}
});
help.setOnTouchListener(new View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN :
help.setImageResource(R.drawable.help);
break;
case MotionEvent.ACTION_UP :
help.setImageResource(R.drawable.help1);
break;
}
return false;
}
});
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
moveTaskToBack(false);
finish();
}
});
sound.setOnClickListener(new View.OnClickListener()
{
private boolean fun = true;
public void onClick(View v)
{
if(fun)
{
sound.setImageResource(R.drawable.nosound);
sound.setPressed(true);
fun=false;
stopService(new Intent(settings.this,
BackgroundSoundService.class));
sound.setOnTouchListener(new View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN :
sound.setImageResource(R.drawable.nosound1);
break;
case MotionEvent.ACTION_UP :
sound.setImageResource(R.drawable.nosound);
break;
}
return false;
}
});
}
else
{
fun=true;
sound.setPressed(true);
sound.setImageResource(R.drawable.sound);
startService(new Intent(settings.this,
BackgroundSoundService.class));
sound.setOnTouchListener(new View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN :
sound.setImageResource(R.drawable.sound1);
break;
case MotionEvent.ACTION_UP :
sound.setImageResource(R.drawable.sound);
break;
}
return false;
}
});
}
}
});
}
}
使用SharedPreference
保存當前狀態,並在更改狀態時更新SharedPreference
值。 當您從其他活動中回來時,請從sharedPreference
獲取狀態並更改您的圖片。您可以在onResume
方法中執行此任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.