2016-02-05 23 views
5

Tôi có 3 mô-đun: mod1, mod2mod3. Mô-đun mod1 có các phụ thuộc mod2mod3.Cách chia sẻ Chuỗi giữa nhiều mô-đun?

Tôi muốn có một chuỗi (đặc biệt nó sẽ là UserAgent vì tất cả 3 mô-đun HTTP-talk với một số máy chủ và cả 3 nên có cùng một bộ tác nhân người dùng) được chia sẻ giữa 3 mô-đun đó.

+0

Mô-đun gradem 'mod1',' mod2' và 'mod3' hay chỉ các phần riêng biệt của cùng một ứng dụng? –

+0

Bởi "module gradle" bạn có nghĩa là phụ thuộc thư viện (lấy từ repo maven)? Không, chúng là phụ thuộc của mô-đun (có thể là những gì bạn gọi là "các phần riêng biệt của cùng một ứng dụng") –

+1

Điều gì xảy ra với cái nhìn đầu tiên của tôi là tạo một mô-đun thư viện và có 'mod1',' mod2' và 'mod3' phụ thuộc vào nó. Nó có thể là overkill mặc dù, xem xét bạn chỉ muốn chia sẻ một chuỗi duy nhất. –

Trả lời

0

Nếu đây "một String" bạn muốn chắc phổ biến đối với tất cả các module khác, là trong một tập tin strings.xml (không phải là một giá trị String trong một file .java), sau đó bạn có thể tạo ra một mô-đun thông thường nói, mode0, bao gồm String của bạn các giá trị bạn muốn tạo cho các mô-đun khác trong tệp là strings.xml. Sau đó, bạn có thể thêm mode0 làm phụ thuộc vào các mô-đun khác. Đây có lẽ không phải là cách tốt nhất để làm điều này nhưng, hy vọng điều này sẽ hữu ích!

0

Một cách để làm điều này là tạo một lớp công khai với các phương pháp để viết và đọc thông tin.

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; 
} 

Sau đó, bạn có thể viết (this, "myUserAgent") và readnote (this, "myUserAgent").

Nếu bạn sử dụng ý định, một aproach khác là sử dụng intent.putExtra.

+0

@Marian, vui lòng kiểm tra xem câu trả lời có đúng là bạn hữu ích hơn không để giúp bạn giải quyết vấn đề của mình. Cảm ơn bạn. – statosdotcom

0

Thêm trường cấu hình xây dựng vào mục nhập dự án con của tệp xây dựng cấp cao nhất.

Nó sẽ là một cái gì đó như thế này:

subprojects { 
    afterEvaluate { project -> 
     if (project.hasProperty("android")) { 
      android.defaultConfig { 
       buildConfigField 'String', 'USER_AGENT', "\"Android-agent\"" 
      } 
     } 
    } 
} 

Sau đó, trong BuildConfig tập tin của bạn của mỗi mô-đun, bạn sẽ thấy:

public static final String USER_AGENT = "Android-agent"; 

T.B. Có lẽ nó không phải là thực hiện tốt nhất của phát hiện tiểu dự án android, nhưng tốt nhất tôi biết

Các vấn đề liên quan