2014-02-10 37 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(); 
     } 

    } 

} 
} 

回答