1

ユーザーが次回このアプリを使用したいときにパスワードを保存するAndroidアプリを実行しています。アプリケーションを実行しようとすると、パスワードが入力されますが、アプリケーションが停止したというポップアップが表示されますか?

package com.wheresmyphone;

import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;


   public class Check extends Activity {


    String StringPreference;

    SharedPreferences preferences;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_check);
    Button b = (Button)findViewById(R.id.Button01);
    final EditText preferences = (EditText)findViewById(R.id.txt12345);

    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            EditText sharedPreferences = (EditText)findViewById(R.id.txt12345);
            String StringPreference = preferences.getText().toString();

        }



    });
}
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.check, menu);
        return true;
    }
    /**
     *   Method used to get Shared Preferences */

    public SharedPreferences getPreferences() 
    {

        return getSharedPreferences(null, 0);
    }
    /**
     *  Method used to save Preferences */
    public void savePreferences(String key, String value)
    {
        SharedPreferences sharedPreferences = getPreferences();
        SharedPreferences.Editor editor = preferences.edit();
        String StringPreference =  sharedPreferences.toString();
        editor.putString("sharedString", StringPreference);
        editor.commit();
    }

/**
     *  Method used to load Preferences */
    public String loadPreferences(String key) 
    {
        try {
            SharedPreferences sharedPreferences = getPreferences();
            String strSavedMemo = sharedPreferences.getString(key, "");
            return strSavedMemo;
        } catch (NullPointerException nullPointerException) 
        {
            Log.e("Error caused at  TelaSketchUtin loadPreferences method",
                    ">======>" + nullPointerException);
            return null;
        }
    }
    /**
     *  Method used to delete Preferences */
    public boolean deletePreferences(String key)
    {
        SharedPreferences.Editor editor=getPreferences().edit();
        editor.remove(key).commit();
        return false;
    }   

    {

}

}   
4

3 に答える 3

0

SharedPreferences を次のように使用します。

保存する:

SharedPreferences settings;
SharedPreferences.Editor editor;
public static final String PREFS_NAME = "app_pref";
public static final String KEY_p_id = "KEY_test";

settings = getSharedPreferences(PREFS_NAME, 0);
editor = settings.edit();
editor.putString(Login_screen.KEY_test, values.get(0));
editor.commit();

削除する:

editor.remove("KEY_test").commit();

取得するため:

settings = getSharedPreferences(PREFS_NAME, 0);
String TestId = settings.getString("KEY_test", null);
于 2013-10-18T05:59:12.290 に答える
0

よくわかりませんが、この時点で何かを見逃したと思います:

return getSharedPreferences(null, 0);

ここを見て:

http://developer.android.com/reference/android/content/Context.html#getSharedPreferences%28java.lang.String,%20int%29

パラメータ名
目的の設定ファイル。この名前の設定ファイルが存在しない場合は、エディターを取得して (SharedPreferences.edit())、変更をコミットする (Editor.commit()) ときに作成されます。

「name」を null に設定すると、彼はファイルを作成できません。

解決策かもしれません、これを上に追加してください

private final String KEY_SHAREDPREFS = "tmpsharedprefs";

そしてそれを使う

return getSharedPreferences(KEY_SHAREDPREFS, 0);
于 2013-10-18T05:43:28.110 に答える
0

設定から文字列を取得しようとしていることを確認してください。まず、このコードのように edittext からパスワードを取得する必要があります

EditText passwordText = (EditText)findViewById(R.id.txt12345);
String password = passwordText.getText().toString();

このパスワードを共有設定に保存します

于 2013-10-18T05:52:16.573 に答える