2013-03-11 71 views
0

我有一個主要活動,它向socket.java發送一個字符串(socket.out(「back」);)。如何在android中的兩個類之間傳遞字符串?

public class socket { 

public static void out(String out){ 

    /* 
    final String PREFS_NAME = "SAVEDIP"; 
final String PREF_IP = "ip"; 
String ip = null; 
SharedPreferences pref = getSharedPreferences(PREFS_NAME, MODE_PRIVATE); 
ip = pref.getString(PREF_IP, ""); 
    */ 



try { 
    Socket client = new Socket("192.168.1.2",8000); 
    PrintWriter output = new PrintWriter(client.getOutputStream(), true); 
    BufferedReader in = new BufferedReader(new 
     InputStreamReader(client.getInputStream())); 
    output.println(out); 

    output.close(); 
    in.close(); 
    client.close(); 
    } catch (UnknownHostException e) { 
    Log.e("TAG", "UnknowHostExeption"); 
    e.printStackTrace(); 
    } catch (IOException e) { 
    Log.e("TAG", "IOExeption"); 
    e.printStackTrace(); 
    } 
} 
    } 

我想將IP地址轉換爲變量「ip」(註釋部分)。我用SharedPreferences保存了IP,但不能讀取它。我嘗試了評論中的代碼,但是eclipse強調了「MODE_PRIVATE」部分的含義:「MODE_PRIVATE不能解析爲變量」。

任何想法如何解決我的問題?

回答

1

裏面你沒有上下文引用您的套接字類,最簡單的辦法就是上下文對象傳遞給了方法

public static void out(String out, Context context){ 

使用這個上下文對象,你可以得到SharedPreferences是這樣的:

SharedPreferences pref = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); 

我想這個IP地址是獨一無二的應用程序,如果這樣你可以創建自己的應用程序類,你可以在那裏保存全局的東西。

+0

感謝您的幫助。這是我的解決方案:) – Robert 2013-03-11 18:57:55

0

試試這個:

SharedPreferences pref = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); 
0

可以按如下方式使用它:

SharedPreferences pref = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); 

SharedPreferences pref = getSharedPreferences(PREFS_NAME, 0); 
+0

感謝您的回覆。 – Robert 2013-03-11 13:47:34

+0

@ user2156702如果它適合你,那麼你可以將它標記爲答案。 – Rahil2952 2013-03-11 13:52:34

+0

感謝您的回覆。 在這兩種情況下,「getSharedPreferences」都會加下劃線,並出現以下錯誤:「方法getSharedPreferences(String,int)未定義爲類型套接字」 應該如何處理上下文? – Robert 2013-03-11 13:55:13

0
in class A 


SharedPreferences app_preferences=PreferenceManager.getDefaultSharedPreferences(ProfileloginActivity.this); 
        SharedPreferences.Editor editor = app_preferences.edit(); 
        // String text = textBox.getText().toString(); 
        editor.putString("key",username); 

        editor.commit(); 

在班組長乙

SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this); 
     String username = app_preferences.getString("key", "null"); 
相關問題