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