我有3个模块:mod1
,mod2
和mod3
。模块mod1
具有依赖关系mod2
和mod3
。
我希望在这3个模块之间共享一个String(特别是它将是UserAgent,因为所有3个模块都与某个服务器进行HTTP通信,所有3个模块应该具有相同的用户代理集)。
答案 0 :(得分:1)
这样做的一种方法是使用方法来创建一个公共类来写入和读取信息。
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”)和readnote(这个,“myUserAgent”)。
如果你使用intent,另一个方法是使用intent.putExtra。
答案 1 :(得分:0)
如果这是"一个字符串"你想让所有其他模块共用,在strings.xml
文件中(String
文件中不是.java
值),那么你可以创建一个公共模块,{{1包含您想要为其中的mode0
文件中的其他模块使用的String
值。然后,您可以将strings.xml
添加为其他模块的依赖项。这可能不是最好的方法,但希望这将是有用的!
答案 2 :(得分:0)
将构建配置字段添加到顶级构建文件的子项目条目中。
会是这样的:
subprojects {
afterEvaluate { project ->
if (project.hasProperty("android")) {
android.defaultConfig {
buildConfigField 'String', 'USER_AGENT', "\"Android-agent\""
}
}
}
}
然后在每个模块的BuildConfig
个文件中,您将看到:
public static final String USER_AGENT = "Android-agent";
P.S。也许它不是android子项目检测的最佳实现,但是我知道的最好的