EditTextでユーザからIPアドレスを取得し、EditTextでユーザが取得したコンピュータIPとモバイルを通信するためのアンドロイドコードを作成しました。java android programminging。ユーザからIPアドレスを取得する
私はボタンの何も作業をクリックすると、これは、私のコードです:
public class MainActivity extends Activity {
Button b;
EditText et;
TextView tv;
private Socket socket;
int PORT = 4003;
String HOST; //HOST = " 192.168.2.1"
private Handler textview_handler_thread;
class ClientThread implements Runnable {
@Override
public void run()
{
try {
socket = new Socket(HOST, PORT);
Message msg = null;
while(true) {
msg = textview_handler_thread.obtainMessage();
msg.obj = "Process Completed Succesfully";
textview_handler_thread.sendMessage(msg);
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b = (Button) findViewById(R.id.button1);
et = (EditText) findViewById(R.id.editText1);
HOST = et.getText().toString();
new Thread(new ClientThread()).start();
textview_handler_thread = new Handler() {
public void handleMessage(Message msg) {
Object o = msg.obj;
if (o == null)
o = "";
TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(o.toString());
}
};
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
try {
DataOutputStream output_to_server = new DataOutputStream(socket.getOutputStream());
String client_str = et.getText().toString();
output_to_server.writeBytes(client_str);
output_to_server.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
それは、ユーザからのIPアドレスが含まれているshoul HOST変数に問題があります。 最初に私はHOST = "192.168.2.1"と書いた。 しかし、今私はユーザーがそれをしたい。
注:私がHOST = "192.168.2.1"を書きました。正常に実行されます。テキストを編集するためにホストの値を割り当てたときCANTはコンピュータと通信しますWHY?
ハンドラを起動していないようです –
ユーザ入力値が 'HOST'になっていますか? – jgm
onCreate()からgetText()を削除してonClick()に入れてください –