2017-09-03 47 views
0

我是Android新手。我有一個基本的Activity類(MainActivity.java),它擴展了Activity。所以我可以在這裏初始化意圖。 MainActivity.java如何在Android中獲取意圖值非活動類

Intent myIntent = new Intent(MainActivity.this, ConnectionClass.class); 
myIntent.putExtra("ServerName", ServerName); 
startActivityForResult(myIntent, 1); 

在connectionClass.java我有沒有繼承的類ConnectionClass。但我想訪問MainActivity.java中的值。所以這個類不會繼承Activity & onCreate方法。但我需要

public class ConnectionClass { 
    Bundle bundle = getIntent().getExtras(); 
     String ServerName = bundle.getString("ServerName"); 
} 

我怎樣才能做到這一點從MainActivity.java訪問值ConnectioClass.java

ConnectionClass.Java?

+1

您只能在活動中獲取意圖。您需要將它作爲參數傳遞給任何其他類。但是我認爲你很困惑 - 如果ConnectionClass不是一個活動,你不能將它作爲參數傳遞來創建一個新的intent-only活動可以通過startActivityForResult啓動。 –

回答

0

我不知道「ServerName」是固定值,還是每次都有變化,或者它有一組值。如果是第一或第三種情況,我建議您使用SharedPreferences。這是一個相對較小的鍵值數據存儲。您可以將數據保存在其中,一旦存儲,它將永久保存在您的應用程序中,除非被刪除。因此,您可以將數據保存在MainActivity中,然後在任何需要的位置獲取該值。

你可以在這裏找到的教程:https://developer.android.com/training/basics/data-storage/shared-preferences.html

0

您可以將服務器名傳遞給類,當你實例從ConnectionClass一個新的對象在活動像下面

public class ConnectionClass { 
String serverName; 
public ConnectionClass(String serverName){ 
this.serverName=serverName; 
} 
} 

然後在您的活動,您有例如:

Bundle bundle = getIntent().getExtras(); 
String ServerName = bundle.getString("ServerName"); 
ConnectionClass connection=new ConnectionClass(ServerName); 
相關問題