2014-02-10 35 views
0

由于某种原因,我无法从我的客户端应用程序更新我的服务器ID。我使用菜单选项卡(3个点)会拉起一个屏幕,以便您可以更新IP但它不会更新。我想我只需要字符串从IP更新通过连接再次运行从菜单栏更新服务器IP

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setServerIP(); 
    setContentView(R.layout.main);  

new Thread(new ClientThread()).start(); 
} 

private void setServerIP() { 
    serverIP = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("SERVER_IP", "192.168.21.16"); 

    try { 
     serverAddr = InetAddress.getByName(serverIP); 
     getActionBar().setSubtitle("Broadcasting touch events to "+serverIP+":4444"); 
    } catch(Exception e) { 

    } 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()){ 
     case R.id.action_settings: 
      Intent n = new Intent(this,Prefs.class); 
      startActivityForResult(n, 0); 

    } 
    return super.onOptionsItemSelected(item); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    setServerIP(); 

    super.onActivityResult(requestCode, resultCode, data); 
} 

class ClientThread implements Runnable { 

    @Override 
    public void run() { 

     try { 
      InetAddress serverAddr = InetAddress.getByName(serverIP); 
      socket = new Socket(serverAddr, SERVERPORT); 
      connected = true; 
     } catch (UnknownHostException e1) { 
      e1.printStackTrace(); 
     } catch (IOException e1) { 
      e1.printStackTrace(); 
     } 

    } 

} 
} 

回答