我是android的新手。我想创建一个应用程序,使用ServerSocket将user1位置发送到user2。
public class ToMain extends Activity {
TextView info, infoip, msg;
String message ="";
ServerSocket serverSocket;
String s="",t="";
public Double b,c;
public int i;
private class SocketServerThread extends Thread {
static final int SocketServerPORT = 8080;
int count = 0;
@Override
public void run() {
Socket socket = null;
DataInputStream dataInputStream = null;
DataOutputStream dataOutputStream = null;
try {
serverSocket = new ServerSocket(SocketServerPORT);
ToMain.this.runOnUiThread(new Runnable() {
@Override
public void run() {
info.setText("I'm waiting here: "
+ serverSocket.getLocalPort());
}
});
while (true) {
socket = serverSocket.accept();
dataInputStream = new DataInputStream(
socket.getInputStream());
dataOutputStream = new DataOutputStream(
socket.getOutputStream());
String messageFromClient = "";
//If no message sent from client, this code will block the program
messageFromClient = dataInputStream.readUTF();
我在服务器端以这种方式拆分纬度和经度
for(int j=0;j<i;j++){
if(messageFromClient.charAt(j)!='+' && bool==false){
s=s+messageFromClient.charAt(j);
}
else{
bool=true;
}
if(bool){
t=t+messageFromClient.charAt(j);
}
}
我存储在这两个变量
中 b = Double.parseDouble(s);
c = Double.parseDouble(t);
ToMain.this.runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
String msgReply = "Location Sent!" + count;
dataOutputStream.writeUTF(msgReply);
我想将这些变量从这里发送到包含地图的主要活动
// startActivity(intent);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
final String errMsg = e.toString();
ToMain.this.runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (dataInputStream != null) {
try {
dataInputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (dataOutputStream != null) {
try {
dataOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
如何将a和b传递给主要活动。
答案 0 :(得分:1)
通过意图传递数据。
Intent data = new Intent(this,SecondActivity.class);
data.putExtra("keyA",a);
data.putExtra("keyB",b);
startActivity(data);
In second activity in onCreate()
Intent intent = getIntent();
Double a = intent.getDoubleExtra("keyA",0);
Double b = intent.getDoubleExtra("keyB",0);
答案 1 :(得分:0)
要将数据从一个Activity传递到另一个Activity,您可以在Intent中使用Extras。
Intent intent = new Intent("ACTIVITY_INTENT");
intent.putExtra("selection", position);
startActivity(intent);
您可以发送二进制文本,文本和此处列出的多个部分, documentation
要在活动的oncreate方法中接收下一个活动中的数据,
extras = getIntent().getExtras();
int value = extras.getInt("selection");
如果您想要保留数据,最简单的方法是将其保存在共享首选项中。
开发人员链接提供了有关如何实施此操作的详细信息 - http://developer.android.com/training/sharing/send.html
要写入数据,
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();
要阅读数据,
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
一切顺利
答案 2 :(得分:0)
使用Intent将数据从一个活动传递到另一个活动
Intent intent = new Intent(this,SecondActivity.class);
intent .putExtra("key1",value);
intent .putExtra("key2",value);
startActivity(intent );
onCreate()中的第二个活动
Intent intent = getIntent();
Double a = intent.getDoubleExtra("key1",0); // Notice 0 is the default value here
Double b = intent.getDoubleExtra("key2",0);
答案 3 :(得分:0)
在Android用户界面中通过活动显示。 Activity用于向用户表示数据并允许用户交互。在Android应用程序中,我们可以有多个活动,并且可以相互交互。在活动交互期间,我们可能需要将数据从一个活动传递到另一个活动。
现在,要将数据从一个活动传递到android中的其他活动,您需要执行以下操作:
您可以使用Intent将数据从一个活动发送到另一个活动。 intent包含操作和可选的附加数据。可以使用intent putExtra()方法将数据传递给其他活动。数据作为附加项传递,是键/值对。密钥始终是String。作为值,您可以使用原始数据类型int,float,chars等。我们还可以将Parceable和Serializable对象从一个活动传递给另一个活动。
Intent intent = new Intent(context, YourActivityClass.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);