android - 通过 Intent 而不是构造函数传递数据

标签 android

开发了许多桌面 GUI 应用程序(从 Xt 到 Qt、Java Awt/Swt/Swing 等),我真的发现很难习惯 Android。

假设我有 MainView Activity 类,它通过 Intent 机制显式调用DetailedView,如下所示:

  • 由于 Activity 类是通过 onCreate() 实例化的,我该如何 定制吗? (没有构造函数,只有 通过 Intent 传递数据!)

  • 有没有办法获取DetailedView实例的引用 主要 Activity ?

  • 有没有办法获取 MainActivity 实例的引用 详细查看?

  • 如何将对 FrontEnd 的引用传递给DetailedView 类? Intent.putExtras() 只允许 某些数据类型传递给 Intent 接收器类。

    MainActivity {
        ...
        FrontEnd fe;
        ...
    
        public void onCreate(Bundle savedInstanceState) {
            ...
            Intent myIntent = new Intent(this, DetailedView.class);
            ...
        }
    
        protected void onListItemClick(ListView l, View v, int position, long id) {
            ...
            startActivityForResult(myIntent,..);
            ...
        }
    }
    

最佳答案

在特定应用程序的 Activity/服务之间传递简单数据的一种方法是使用 android 的 SharedPreferences 功能。

这可能不是完成工作的最优雅的代码,但我通常在 Android 项目中创建一个静态“实用程序”类,以允许通过共享首选项进行 1 行获取和设置简单数据类型

private static final String PREFERENCE_FILE_NAME = "com.snctln.util.test.SharedPreferencesFile";
private static final String BOOL_VALUE_ONE = "bValueOne";

public static boolean getBooleanValue1(Context context)
{
    SharedPreferences prefs = context.getSharedPreferences(PREFERENCE_FILE_NAME, Context.MODE_PRIVATE);
    return prefs.getBoolean(BOOL_VALUE_ONE, true); // return true if the value does not exist
}

public static void setBooleanValue1(Context context, int appWidgetId, boolean actualvalue)
{
    SharedPreferences.Editor prefs = context.getSharedPreferences(PREFERENCE_FILE_NAME, Context.MODE_PRIVATE).edit();
    prefs.putBoolean(BOOL_VALUE_ONE, actualvalue);
    prefs.commit();
}

关于android - 通过 Intent 而不是构造函数传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/987848/

相关文章:

java - 是否有任何开源 “MSWord doc to PDF” 转换库可用

android - 从自定义 View 启动 AsyncTask 的最佳实践

android - 在android中为谷歌地图设置定义的缩放范围

android - 如何代理对 api.twitter.com 的请求,包括 SSL 证书?

android - onActivityResult 未在 Android 中触发

Java 编程风格与 Objective C

java - 滚动 Pane 图像表

java - 我只收到文本和图像 : Wordpress REST API app in Android studio

java - Android 图像按钮只有一种颜色

android - 带有 android :autoVerify ="true" - never verified at installation, 默认应用程序链接的 Intent 过滤器不起作用