Android 使用意图从类向MainActivity发送数据时出错
在我的MainActivity中,我需要知道布尔类型变量的状态以隐藏或显示图标,但该变量是在另一个名为TcpClient的类中生成的,该类被MainActivity调用了多次,我试图使用intent从TcpClient类发送该变量,但我有错误 这是我的主要活动代码:Android 使用意图从类向MainActivity发送数据时出错,android,Android,在我的MainActivity中,我需要知道布尔类型变量的状态以隐藏或显示图标,但该变量是在另一个名为TcpClient的类中生成的,该类被MainActivity调用了多次,我试图使用intent从TcpClient类发送该变量,但我有错误 这是我的主要活动代码: public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { pr
public class MainActivity extends AppCompatActivity implements
NavigationView.OnNavigationItemSelectedListener {
private TcpClient mTcpClient;
public boolean statusWIFI = false;
.
.
public class ConnectTask extends AsyncTask<String, String, TcpClient> {
@Override
protected TcpClient doInBackground(String... message) {
mTcpClient = new TcpClient(new TcpClient.OnMessageReceived() {
@Override
//here the messageReceived method is implemented
public void messageReceived(String message) { //we create a TCPClient object and
publishProgress(message); //this method calls the onProgressUpdate
}
});
mTcpClient.run();
return null;
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
//arrayList.add("RX: " + values[0]); //in the
arrayList we add the messaged received from server
mDumpTextView.append( values[0] );
mDumpTextView.append( "\n" );
mScrollView.smoothScrollTo( 0, mDumpTextView.getBottom() );
mAdapter.notifyDataSetChanged(); // notify the
adapter that the data set has changed. This means that new message
received
// from server was added to the list
}
这是我的TcpClient类的代码:
public class TcpClient {
private Boolean statusWIFIX = false;
.
.
public void stopClient() {
statusWIFIX = false;
Intent intent = new Intent( this, MainActivity.class );
intent.putExtra( "mstatusWIFI", statusWIFIX );
startActivityForResult( intent, 0 );
sendMessage(Constants.CLOSED_CONNECTION+": " + Modelox);
// send message that we are closing the connection
mRun = false;
if (mBufferOut != null) {
mBufferOut.flush();
mBufferOut.close();
}
mMessageListener = null;
mBufferIn = null;
mBufferOut = null;
mServerMessage = null;
}
这里是错误;有人可以告诉我如何纠正这个问题
必须将活动上下文传递到意图构造函数中。TCP客户端似乎没有任何活动或服务。我没有看到任何mTcpClient的初始化,您需要像这样初始化它:
mTcpClient= TcpClient();
如果变量在TcpClient类中,则可以通过mTcpClient.statusWIFIX
您还需要将statusWIFIX范围公开,如下所示:
public Boolean statusWIFIX = false;
在您的TcpClient
类中
您也可以通过intent发送数据,但仅用于访问statusWIFIX以再次启动活动不是一个好方法。是
TcpClient
类另一个java.class
还是您已在MainActivity.class
中声明。因为您对this.startActivity
有问题?您想访问哪个变量值?TcpClient类是另一个java.class,我想访问它statusWIFIX@W1ll检查我的回答这是一个评论而不是一个答案。你也有足够的声誉来添加评论
public Boolean statusWIFIX = false;