Android 如何保存结果?
我是android编程的新手 我有个小问题。单击ImageView时,我会使该ImageView不可见,并将按钮设置为可见。我的问题是你如何保存这个 例如,我单击ImageView,按钮显示,ImageView消失。我退出应用程序并重新进入相同的活动,我希望该按钮保持不变 我该怎么做呢Android 如何保存结果?,android,button,android-activity,imageview,Android,Button,Android Activity,Imageview,我是android编程的新手 我有个小问题。单击ImageView时,我会使该ImageView不可见,并将按钮设置为可见。我的问题是你如何保存这个 例如,我单击ImageView,按钮显示,ImageView消失。我退出应用程序并重新进入相同的活动,我希望该按钮保持不变 我该怎么做呢 import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
public class Flightplan extends Activity {
Button a;
ImageView b;
private boolean isVisible;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.flightplan);
b = (ImageView) findViewById(R.id.plus);
View v1 = findViewById(R.id.test);
v1.setVisibility(View.GONE);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
View v2 = findViewById(R.id.test);
v2.setVisibility(View.VISIBLE);
View v3 = findViewById(R.id.plus);
v3.setVisibility(View.GONE);
}
});
}
}
谢谢 将状态保存到共享首选项中,然后在
onCreate
中检查该首选项。对于如何使用共享首选项,的答案非常清楚,但您可以尝试以下方法,而不是使用冗长的首选项。
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.content.SharedPreferences;
public class Flightplan extends Activity {
Button a;
ImageView b;
private boolean isVisible;
SharedPreferences prefs = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.flightplan);
prefs = this.getSharedPreferences(
"com.your.app", Context.MODE_PRIVATE);
boolean imageVisible = prefs.getBoolean("imageVisible", false);
b = (ImageView) findViewById(R.id.plus);
View v1 = findViewById(R.id.test);
if (!imageVisible){
v1.setVisibility(View.GONE);
v3.setVisibility(View.VISIBLE);
}else{
v1.setVisibility(View.VISIBLE);
v3.setVisibility(View.GONE);
}
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
View v2 = findViewById(R.id.test);
v2.setVisibility(View.VISIBLE);
View v3 = findViewById(R.id.plus);
v3.setVisibility(View.GONE);
prefs.edit().putBoolean("imageVisible", true).commit();
}
});
v1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
View v2 = findViewById(R.id.test);
v2.setVisibility(View.GONE);
View v3 = findViewById(R.id.plus);
v3.setVisibility(View.VISIBLE);
prefs.edit().putBoolean("imageVisible", false).commit();
}
});
}
}
我是用文本编辑器写的。可能是编译器出现了一些错误…您可以使用对您帮助最大的SharedReference来执行此操作,也可以不使用您的。在写新问题之前,请先阅读。这将帮助您提高答案和质量。如果你不努力写出一个好的问题,人们就不会费心写出好的答案。如果你可以,你能把它写进我的代码并发布吗?因为我已经尝试了很多,但是失败了。嗯,@Stefan已经做了,所以你可以直接得到他的答案=)谢谢!我真的很感激你,伙计!谢谢!