私はAndroidが初めてです。次のコードがあります。
public class SettingsActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tcp_settings);
Button buttonConnect = (Button) findViewById(R.id.buttonConnect);
buttonConnect.setOnClickListener(new View.OnClickListener() {
EditText server_ip = (EditText) findViewById(R.id.set_server_ip);
EditText port = (EditText) findViewById(R.id.set_port);
@Override
public void onClick(View view) {
String serverAddr = server_ip.getText().toString();
String serverPort = port.getText().toString();
new connectTask().execute(serverAddr, serverPort);
}
});
}
class connectTask extends AsyncTask<String, Void, String> {
Socket socket;
@Override
protected String doInBackground(String... params) {
int servport = Integer.parseInt(params[1]);
try {
socket = new Socket(params[0], servport);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return params[0] + " : " + params[1];
}
}
}
EditTexts server_ip と port から取得するサーバー ip とポートでソケットを設定したい。connectTask で、string から int への変換を行います: int servport ですが、まだエラーが発生しています:
Caused by: java.lang.NumberFormatException: Invalid int "".
私はそれを入れなければならないので、私は文字列にserverAddrを作る必要があります:
new connectTask().execute(serverAddr, serverPort);
ただし、ソケットは Int としてポートを必要とするため、変換が必要です。
あなたは私を助けて、私が間違っていることを教えてもらえますか?