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();
}
}
}
}