You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SharedPreferences保存EditText设置的Button文本并在重启读取

实现步骤

1. 补充全局变量声明

首先修正原有代码的语法错误,同时新增SharedPreferences相关常量和实例:

public class MainActivity extends AppCompatActivity {
    // SharedPreferences配置常量
    private static final String SP_FILE_NAME = "app_config";
    private static final String KEY_BTN_TEXT = "custom_button_name";
    
    private SharedPreferences mSp;
    private Button button;
    private EditText editText1;

2. onCreate中读取已存储的按钮文本

初始化SharedPreferences后直接读取存储值,设置给按钮即可实现重启恢复效果:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 初始化SharedPreferences,MODE_PRIVATE表示仅本应用可读写
        mSp = getSharedPreferences(SP_FILE_NAME, MODE_PRIVATE);
        
        button = findViewById(R.id.button3);
        // 读取存储的按钮文本,第二个参数为读取失败时的默认值,可自行修改
        String savedText = mSp.getString(KEY_BTN_TEXT, "默认按钮");
        button.setText(savedText);
        
        button.setOnClickListener(v -> opensecondone());
        button.setOnLongClickListener(v -> naming());
        editText1 = findViewById(R.id.tv_textView);
    }

3. 修改naming方法,新增存储逻辑

修改长按触发的命名方法,设置按钮文本的同时将值存入SharedPreferences:

public boolean naming() {
        String inputContent = editText1.getText().toString().trim();
        // 可选:增加非空判断,避免空输入覆盖原有按钮名
        if (!inputContent.isEmpty()) {
            button.setText(inputContent);
            // 存入SharedPreferences
            SharedPreferences.Editor editor = mSp.edit();
            editor.putString(KEY_BTN_TEXT, inputContent);
            editor.apply(); // 异步提交,无返回值不阻塞主线程,如需确认存储结果可替换为commit()
        }
        // 清空输入框
        editText1.setText("");
        return true;
    }

原有方法保留即可

public void opensecondone() {
        Intent intent = new Intent(this, firmaeins.class);
        startActivity(intent);
   }
}

注意事项

  • 原有代码中MainActivity<button1>的错误泛型声明需删除
  • 成员变量声明末尾需补全分号,修复语法错误
  • 如果需要支持多按钮存储,只需新增不同的KEY常量区分存储即可

内容的提问来源于stack exchange,提问作者DrlSoldberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:24:00