【发布时间】:2020-06-04 11:33:13
【问题描述】:
当我尝试将变量保存到共享首选项然后在编辑文本中调用它时它没有被保存?我已经四处寻找了几个小时,但我找不到任何东西。我知道 sharedPrefrences 在某种程度上就像字典一样,但除此之外我不明白为什么这不起作用:(
package com.example.gatorblocks;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.wearable.activity.WearableActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class block1Settings extends WearableActivity{
private TextView mTextView;
Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_block1_settings);
configureBackButton();
configureColor();
Button addTextButton = (Button) findViewById(R.id.Apply);
TextView simpleEditText = findViewById(R.id.simpleEditText);
SharedPreferences prefs = getSharedPreferences("classes.txt", 0);
simpleEditText.setText(prefs.getString("classes1","1-1")); //set textbox to equal current class
final EditText vEditText = (EditText) findViewById(R.id.simpleEditText);
mTextView = (TextView) findViewById(R.id.text);
// Enables Always-on
setAmbientEnabled();
addTextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String enteredText = vEditText.getText().toString(); //sets the array value of block to the editText
test(enteredText);
}
});
}
private void configureColor() {
Button Block1 = (Button) findViewById(R.id.colorButton);
Block1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(block1Settings.this, colorBlock1.class));
overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_left);
}
});
}
private void configureBackButton(){
Button backbutton = (Button) findViewById(R.id.backButton);
backbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(block1Settings.this, classes.class));
overridePendingTransition(R.anim.slide_in_left,R.anim.slide_out_right);
finish();
}
});
}
public void test(String enteredText){
SharedPreferences pref = getSharedPreferences("classes.txt", 0);
SharedPreferences.Editor editor = pref.edit();
editor.putString("class1", enteredText);
editor.apply();
}
}
【问题讨论】:
-
您是否收到任何错误日志?你的方法看起来不错。请检查是否正在调用函数
test()。尝试在此函数内的 LogCat 中记录一些文本。 -
能不能用 System.out.println("enteredText is ->" + enterText);您必须确保发送该值。
-
@AtishAgrawal 当我单击“保存”按钮时正在调用测试函数,但我没有收到任何错误日志,如何在 LogCat 中记录文本?
-
使用 commit() 而不是 apply()
-
@MuratÇakır 当我在编辑文本中输入“文本”时,系统打印输入的文本是->文本
标签: android android-edittext sharedpreferences