Android 从其他xml文件中获取View组件数据

问题

Android Studio 我想在 trace.java 从setting.java绑定的页面activity_setting.xml中 的editview中获取数据

解决方案

仅适用于 在同一应用的不同组件之间共享数据

在 SettingActivity.java 中,当用户准备离开当前活动时,可以将 EditText 中的数据保存到一个全局变量或者共享的存储位置。常见的方法是使用 SharedPreferences:

java 复制代码
public class SettingActivity extends AppCompatActivity {

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

    @Override
    public void onPause() {
        super.onPause();
        // 获取组件数据
        EditText editText = findViewById(R.id.editText);
        String input = editText.getText().toString();
		
        SharedPreferences sharedPref = getSharedPreferences("my_settings", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPref.edit();
        editor.putString("user_input", input);  // 存放在共享位置
        editor.apply();
    }
}

在 TraceActivity.java 中,从 SharedPreferences 读取这个数据:

java 复制代码
public class TraceActivity extends AppCompatActivity {

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

        SharedPreferences sharedPref = getSharedPreferences("my_settings", Context.MODE_PRIVATE);
        String userInput = sharedPref.getString("user_input", "default_value");
        // 这个default_value我没搞懂怎么用(失效的)

        // 处理这个userInput
    }
}
相关推荐
plainGeekDev2 小时前
Glide 该换了?Coil:Kotlin 时代的图片加载库
android·开源·kotlin
小a杰.2 小时前
Ascend C编程语言进阶:高性能算子开发技巧
android·c语言·开发语言
plainGeekDev2 小时前
Android内存面试题:OOM都解决不了,性能优化从何谈起?
android·面试·kotlin
JustNow_Man4 小时前
【opencode】安装使用daytona沙箱插件
android·java·javascript
YIN_尹6 小时前
【Linux 系统编程】手撕一个简易版的shell命令行解释器
android·linux·运维
黄林晴6 小时前
Android CLI 1.0 稳定版发布!官方为 AI Agent 打造专属验证工具,改完自动校验
android
氦客7 小时前
Android Compose 图层的合成 : BlendMode
android·compose·jetpack·layer·blendmode·graphics·图层的合成
Sahadev_8 小时前
GitMemo 安卓版发布了:现在可以随时随地查看和记录自己的笔记
android·笔记·创业创新
龙之叶8 小时前
Android 12:在 ActivityStarter 层拦截分享、搜索与 HTTP 外链
android·chrome·http
牛奔8 小时前
Android 开发通用解决方案:使用 ADB 彻底卸载已安装 App(解决版本降级安装失败问题)
android·adb