保存和恢复实例 [英] Save and Restore Instance

查看:122
本文介绍了保存和恢复实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在LogoQuiz比赛,当我们进入一个正确的答案,显示了答案和活动froen。每当我们回到那个屏幕相同的显示。这是怎么一回事?任何人都可以提供一个例子?

 公共类Activity3扩展活动实现OnClickListener {私人按钮HINT1;
私人按钮提示二;
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_activity3);    HINT1 =(按钮)findViewById(R.id.Hint1);
    提示二=(按钮)findViewById(R.id.Hint2);
    Hint1.setOnClickListener(本);
    Hint2.setOnClickListener(本);
    Hint2.setEnabled(假);    最终的EditText输入=(EditText上)findViewById(R.id.answer);    最终的TextView显示=(的TextView)findViewById(R.id.response);    input.setOnKeyListener(新OnKeyListener(){        @覆盖
        公共布尔安其(视图V,INT键code,KeyEvent的事件){
             如果((event.getAction()== KeyEvent.ACTION_DOWN)及&放大器;
                        (关键code == KeyEvent.KEY code_ENTER)){            字符串检查= input.getText()的toString()代替(,)。;
            如果(check.equalsIgnoreCase(好)){
                display.setText(正确);
                input.setEnabled(假);
            }其他{
                display.setText(错误);
            }
            返回true;
            }
            返回false;}                    });    }@覆盖
公共无效的onClick(查看视图){
    开关(view.getId()){
    案例R.id.Hint1:
        showOneButtonDialog();
        打破;
    案例R.id.Hint2:
        showTwoButtonDialog();
        打破;}}
私人无效showOneButtonDialog()
{
    AlertDialog.Builder dialogBu​​ilder =新AlertDialog.Builder(本);
    dialogBu​​ilder.setTitle(提示1);
    Hint2.setEnabled(真);
    dialogBu​​ilder.setMessage(这是你HINT1);
    AlertDialog alertDialog = dialogBu​​ilder.create();
    alertDialog.show();}
私人无效showTwoButtonDialog()
{
    AlertDialog.Builder dialogBu​​ilder =新AlertDialog.Builder(本);
    dialogBu​​ilder.setTitle(提示2);
    dialogBu​​ilder.setMessage(这是你的提示二);
    AlertDialog alertDialog = dialogBu​​ilder.create();
    alertDialog.show();}
}


解决方案

您应该保存instace共享preferences

例如:您需要保存字符串变量 RES 这样做

 共享preferences preF = preferenceManager.getDefaultShared preferences(YourActivityName.this);编辑EDIT1 =了rememberMe pref.edit();
                edit1.putString(result_key,youredittext.getText()的toString);
                edit1.commit();

要检索的onCreate你的结果()使用下列内容:

 共享preferences preF = preferenceManager.getDefaultShared preferences(YourActivityName.this);
字符串RES1 = pref.getString(result_key);
如果(res1.eqauls(正确)
{
youredittext.setText(正确);
}

现在使用存储在 RES1 你的结果,你想要的方式。最重要的是要检查您是否使用相同的密钥恢复以及WS店共享preference值

希望这有助于..

In LogoQuiz game when we enter a correct answer, the answer is displayed and the activity is froen. Whenever we go back to that screen the same is displayed. How is that done? Could anyone provide an example?

public class Activity3 extends Activity implements OnClickListener {

private Button Hint1;
private Button Hint2;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_activity3);

    Hint1 = (Button) findViewById(R.id.Hint1);
    Hint2 = (Button) findViewById(R.id.Hint2);
    Hint1.setOnClickListener(this);
    Hint2.setOnClickListener(this);
    Hint2.setEnabled(false);

    final EditText input = (EditText) findViewById(R.id.answer);

    final TextView display = (TextView) findViewById(R.id.response);

    input.setOnKeyListener(new OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
             if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                        (keyCode == KeyEvent.KEYCODE_ENTER)) {

            String check = input.getText().toString().replace(" ","");
            if(check.equalsIgnoreCase("good")){


                display.setText("correct");
                input.setEnabled(false);
            } else{
                display.setText("Wrong");
            }
            return true;                        
            }
            return false;}

                    });

    }



@Override
public void onClick(View view) {
    switch(view.getId()){
    case R.id.Hint1:
        showOneButtonDialog();
        break;
    case R.id.Hint2:
        showTwoButtonDialog();
        break;

}}
private void showOneButtonDialog()
{
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
    dialogBuilder.setTitle(" Hint 1 ");
    Hint2.setEnabled(true);
    dialogBuilder.setMessage(" This is your Hint1");
    AlertDialog alertDialog = dialogBuilder.create();
    alertDialog.show();

}
private void showTwoButtonDialog()
{
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
    dialogBuilder.setTitle(" Hint 2 ");
    dialogBuilder.setMessage("This is your Hint2 ");
    AlertDialog alertDialog = dialogBuilder.create();
    alertDialog.show();

}
}

解决方案

you should save your instace in SharedPreferences

for example: you need to save your String variable res to do so

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(YourActivityName.this);

Editor edit1 = remembermepref.edit();
                edit1.putString("result_key",youredittext.getText().toString);
                edit1.commit();

To retrieve your result in onCreate() use following:

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(YourActivityName.this);
String res1 = pref.getString("result_key");
if(res1.eqauls("correct")
{
youredittext.setText("correct");
}

Now use your result stored in res1,way you want. Most important thing is to check whether you have used same key to restore as well ws store the value in SharedPreference

Hope this helps..

这篇关于保存和恢复实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆