如何将 Main class 中的变量导入另一个 class
how to import a variable in Main class to a another class
我有一个 class 可以通过套接字发送消息,我想要该消息,它是用户在应该发送的纯文本中输入的文本。所以我尝试在 class 中捕获纯文本的消息,但它没有用 如果有人知道如何将主 class 的变量导入另一个 class.
这是我执行 class
的代码
class client extends AsyncTask<String, Void, Void> {
Handler handler = new Handler( );
protected Void doInBackground(String... h) {
TextView t3;
final EditText send;
send = (EditText) findViewById( R.id.editText );
t3 = (TextView) findViewById( R.id.textView );
try {
handler.post( new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),"start client", Toast.LENGTH_LONG).show();
}
} );
WifiManager manager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
ip = Formatter.formatIpAddress(manager.getConnectionInfo().getIpAddress());
String[] mess = h;
String messag_send=(mess+"<ip>"+ip);
sock = new Socket( "192.168.5.178", 5000 );
printWriter = new PrintWriter( sock.getOutputStream() );
printWriter.write(messag_send);
String line = "no";
printWriter.flush();
printWriter.close();
sock.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
and to import
client client = new client();
client.execute(h);
如您所见,您收到变量 h
作为 vararg。所以 h
实际上是一个字符串数组。
protected Void doInBackground(String... h)
但是,您并没有真正访问它的内容,而是写
String[] mess = h;
String messag_send=(mess+"<ip>"+ip);
由于 mess
是一个数组,您将其 toString()
值嵌入到您的消息中。
您需要做的是像这样检索数组的第一个值(无论如何它可能只包含一个元素)
String mess = h[0];
String messag_send=(mess+"<ip>"+ip);
我有一个 class 可以通过套接字发送消息,我想要该消息,它是用户在应该发送的纯文本中输入的文本。所以我尝试在 class 中捕获纯文本的消息,但它没有用 如果有人知道如何将主 class 的变量导入另一个 class.
这是我执行 class
的代码
class client extends AsyncTask<String, Void, Void> {
Handler handler = new Handler( );
protected Void doInBackground(String... h) {
TextView t3;
final EditText send;
send = (EditText) findViewById( R.id.editText );
t3 = (TextView) findViewById( R.id.textView );
try {
handler.post( new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),"start client", Toast.LENGTH_LONG).show();
}
} );
WifiManager manager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
ip = Formatter.formatIpAddress(manager.getConnectionInfo().getIpAddress());
String[] mess = h;
String messag_send=(mess+"<ip>"+ip);
sock = new Socket( "192.168.5.178", 5000 );
printWriter = new PrintWriter( sock.getOutputStream() );
printWriter.write(messag_send);
String line = "no";
printWriter.flush();
printWriter.close();
sock.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
and to import
client client = new client();
client.execute(h);
如您所见,您收到变量 h
作为 vararg。所以 h
实际上是一个字符串数组。
protected Void doInBackground(String... h)
但是,您并没有真正访问它的内容,而是写
String[] mess = h;
String messag_send=(mess+"<ip>"+ip);
由于 mess
是一个数组,您将其 toString()
值嵌入到您的消息中。
您需要做的是像这样检索数组的第一个值(无论如何它可能只包含一个元素)
String mess = h[0];
String messag_send=(mess+"<ip>"+ip);