如何在多个模块之间共享字符串?
我有3个模块:mod1
,mod2
和mod3
。模块mod1
具有依赖性mod2
和mod3
。如何在多个模块之间共享字符串?
我想有一个字符串(特别是它将被USERAGENT因为所有3个模块HTTP对话的一些服务器和所有3应具有相同的用户代理组)的那些3个模块间共享。
如果这个“一个字符串”你想使通用于所有其它模块,是一个strings.xml
文件(不是在.java
文件String
值),那么你可以创建一个通用模块说,mode0
,包括你的String
你想为其他模块在strings.xml
文件中通用的值。然后,您可以将mode0
作为依赖项添加到其他模块。这可能不是这样做的最好方法,但是,希望这会有用!要做到这一点
一种方法是让一个有方法的公共类写入和读取信息。
public static String readnote(Context context, String str) {
if (context == null) throw new RuntimeException ("Context is null");
SharedPreferences sp = context.getSharedPreferences("somenameyouchoose", 0);
String mycontent = sp.getString(str);
return mycontent;
}
public static String writenote(Context context, String str) {
if (context == null) throw new RuntimeException ("Context is null");
SharedPreferences sp = context.getSharedPreferences("somenameyouchoose", 0);
SharedPreferences.Editor editor = sp.edit();
editor.putString(str);
editor.commit();
return str;
}
然后你可以写入注(这一点, “myUserAgent”),并读取注(这一点, “myUserAgent”)。
如果您使用的意图,另外的形式给出了就是用intent.putExtra。
@Marian请检查正确的答案,你认为这对帮助你解决问题更有帮助。谢谢。 – statosdotcom
添加构建配置领域的顶级构建文件的您子项目进入。
这将是这样的:
subprojects {
afterEvaluate { project ->
if (project.hasProperty("android")) {
android.defaultConfig {
buildConfigField 'String', 'USER_AGENT', "\"Android-agent\""
}
}
}
}
然后在你的每一个模块的BuildConfig
文件,你会看到:
public static final String USER_AGENT = "Android-agent";
附:也许这不是最好的安卓子项目检测实施,但我知道的最好的一个
是mod1,mod2和mod3 gradle模块还是同一个app的隔离部分? –
“gradle modules”是指库的依赖关系(取自maven回购)?不,他们是模块的依赖关系(可能是你称之为“同一个应用程序的隔离部分”) –
第一次看到我的ming是创建一个库模块,并具有'mod1','mod2'和'mod3'依赖于它。考虑到你只想分享一个字符串,这可能是矫枉过正的。 –