Java 当我连接到套接字时,如何在单击按钮时发送字符串?
当我连接到服务器时,我想通过点击按钮的套接字发送数据。我试图在ConnectTask类和TcpClient类中调用Java 当我连接到套接字时,如何在单击按钮时发送字符串?,java,android,sockets,Java,Android,Sockets,当我连接到服务器时,我想通过点击按钮的套接字发送数据。我试图在ConnectTask类和TcpClient类中调用setOnClickListener,但它显示了一个错误。虽然我在ConnectTask中创建了它,但它没有显示错误,但不起作用。我怎么做?下面是我的课程 这是我的主要课程: import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; i
setOnClickListener
,但它显示了一个错误。虽然我在ConnectTask中创建了它,但它没有显示错误,但不起作用。我怎么做?下面是我的课程
这是我的主要课程:
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.util.Log;
import android.widget.EditText;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
Button btn;
EditText edt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button)findViewById(R.id.button);
edt=(EditText)findViewById(R.id.editText);
ConnectTask connectTask=new ConnectTask();
connectTask.execute("testing");
}
public class ConnectTask extends AsyncTask<String, String, TcpClient> {
@Override
protected TcpClient doInBackground(String... message) {
Log.d("TCP Client", "checking");
TcpClient mTcpClient;
//we create a TCPClient object
mTcpClient = new TcpClient(new TcpClient.OnMessageReceived() {
@Override
//here the messageReceived method is implemented
public void messageReceived(String message) {
//this method calls the onProgressUpdate
publishProgress(message);
}
});
mTcpClient.run();
return null;
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
//response received from server
Log.d("test", "response " + values[0]);
//process server response here....
}
}
}
public class MainActivity extends AppCompatActivity {
Button btn;
EditText edt;
TcpClient mTcpClient;
protected TcpClient doInBackground(String... message) {
Log.d("TCP Client", "checking");
// remove this line TcpClient mTcpClient
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTcpClient.senMessage("get Text from text box");
}
});
edt=(EditText)findViewById(R.id.editText);
ConnectTask connectTask=new ConnectTask();
connectTask.execute("testing");
} public class TcpClientActivity extends MainActivity{
然后你会得到
mTcpClient = new TcpClientActivity(new TcpClientActivity.OnMessageReceived() {
每个人都会站起来哭泣:你不能用
new
操作符实例化一个活动。我应该把setOnClickListener放在哪里?我想从edittext获取文本并通过sendMessage()发送文本方法。我该怎么做?我已经在这里堆了三天了。现在我可以完成我的项目了。它真的很有效。系统说不感谢,但我是认真的。很抱歉。它不能扩展mainactivity。
mTcpClient = new TcpClientActivity(new TcpClientActivity.OnMessageReceived() {