【问题标题】:How to save result?如何保存结果?
【发布时间】:2013-03-21 08:36:11
【问题描述】:

我是安卓编程的菜鸟。

我有一个小问题。当我单击 ImageView 时,我使该 ImageView 不可见并将 Button 设置为可见。我的问题是你如何保存这个?

例如,我单击 ImageView,Button 出现,而​​ ImageView 消失。然后我退出应用程序并重新进入相​​同的活动,我希望该按钮保留在那里。

我该怎么做?

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); 
    }
});

} 
}

谢谢!

【问题讨论】:

标签: android button android-activity imageview


【解决方案1】:

将状态保存到共享首选项中,然后在onCreate 中检查该首选项。 this question 的答案非常清楚如何使用 Shared Preferences,但您可以 store and get a Boolean 代替 Long。

【讨论】:

  • 如果可以的话,你能把它放到我的代码中并发布吗?因为我尝试了很多但失败了。
  • 嗯,@Stefan 已经这样做了,所以你可以直接得到他的答案 =)
【解决方案2】:

试试这个:

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();
  }
});


 }

 }

我是用文本编辑器写的。可能是有一些编译器错误...

【讨论】:

  • 非常感谢!我真的很感激它!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 1970-01-01
  • 2023-02-14
  • 2018-08-13
  • 2017-07-02
  • 2015-10-09
  • 2018-02-17
相关资源
最近更新 更多