0

我有一个主要活动,它将一个字符串( socket.out("back"); )发送到 socket.java。

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 无法解析为变量”。

知道如何解决我的问题吗?

4

4 回答 4

1

在您的套接字类中,您没有上下文引用,最简单的解决方案是将上下文对象传递给 out 方法

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

使用此上下文对象,您可以像这样获得 SharedPreferences:

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

I guess this ip address is unique through out the application, if so you can create your own Application class and you can save global stuff there.

于 2013-03-11T13:52:04.863 回答
0

试试这个:

SharedPreferences pref = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
于 2013-03-11T13:27:34.960 回答
0

您可以按如下方式使用它:

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

或者

 SharedPreferences pref = getSharedPreferences(PREFS_NAME, 0);
于 2013-03-11T13:27:56.430 回答
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();

在 B 类

 SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this);
        String username = app_preferences.getString("key", "null");
于 2013-03-11T13:32:49.860 回答