Android Edittext Sharedpreferences

时间:2016-03-17 20:09:30

标签: java android sharedpreferences

有人可以帮我编辑以下代码,以便将输入的信息保存到edittext中,然后重新启动应用后,它会自动显示保存在edittext字段中的文本。我已经尝试过SharedPreferences教程,但到目前为止我还没能让它工作。

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends Activity {

EditText txtLink;
Button btnOpenLink;
String defaultLink;
String secondLink;
public static final String MyPREFERENCES = "MyPrefs" ;
public static final String Name = "nameKey";
SharedPreferences sharedpreferences;


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

defaultLink = "http://";
secondLink = ".whatver.com";

txtLink = (EditText) findViewById(R.id.editText);
btnOpenLink = (Button) findViewById(R.id.button);
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
btnOpenLink.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
    String server = txtLink.getText().toString();
    SharedPreferences.Editor editor = sharedpreferences.edit();
    editor.putString(Name, server);
    editor.commit();
    if(!TextUtils.isEmpty(server)){
        Intent intent=new Intent(MainActivity.this,webactivity.class);
        intent.setData(Uri.parse(defaultLink+server+secondLink));
        startActivity(intent);
    }else{
        Toast.makeText(MainActivity.this, "Please enter your server name.", Toast.LENGTH_LONG).show();
    }
}
});
}

}

3 个答案:

答案 0 :(得分:0)

验证存储的首选项并加载它们(如果有的话),然后在textview

中显示它们

实施例

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

defaultLink = "http://";
secondLink = ".whatver.com";

txtLink = (EditText) findViewById(R.id.editText);
btnOpenLink = (Button) findViewById(R.id.button);

checkIfPreferencesAvaliable();

if(defaultLink!=null && secondLink!=null){
    txtLink.setText(defaultLink+secondLink);
}

defaultLink = "http://";
secondLink = ".whatver.com";

void checkIfPreferencesAvaliable(){
    SharedPreferences preferences = getPreferences(Activity.MODE_PRIVATE);
    defaultLink = preferences.getStr("mydefaultLink", null);
    secondLink = preferences.getStr("mysecondLink", null);
}

答案 1 :(得分:0)

onCreate()中,检查您的偏好设置中是否已包含值 -

String savedVal = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE).getString(Name, null);

if(savedVal == null){ //This means you don't have the saved values in your prefs file
//Do whatever you want to
} else{
//Use "savedVal" anyway you want
}

答案 2 :(得分:0)

我通过调用

来修复它
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
    txtLink.setText(sharedpreferences.getString(Name, ""));