2013-03-11 72 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"); 
相关问题