![](/img/trans.png)
[英]How to pass data from an activity to another activity and then to another activity on Android?
[英]How to pass data from one activity to another activity in 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 傳遞給主要活動。
通過意圖傳遞數據。
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);
要將數據從一個 Activity 傳遞到另一個 Activity,您可以在 Intent 中使用 Extras。
Intent intent = new Intent("ACTIVITY_INTENT");
intent.putExtra("selection", position);
startActivity(intent);
您可以發送此處列出的二進制、文本和多個片段, http://developer.android.com/training/sharing/send.html
要在下一個活動中接收數據,在活動的 oncreate 方法中,
extras = getIntent().getExtras();
int value = extras.getInt("selection");
如果您想保留數據,實現此目的的最簡單方法是將其保存在共享首選項中。
開發人員鏈接有關於如何實現這一點的很好的信息 - http://developer.android.com/training/basics/data-storage/shared-preferences.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);
祝一切順利
使用 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);
在 Android 中,用戶界面是通過一個 Activity 顯示的。 活動用於向用戶表示數據並允許用戶交互。 在一個 android 應用程序中,我們可以有多個 Activity 並且可以相互交互。 在活動交互期間,我們可能需要將數據從一個活動傳遞到另一個活動。
現在,要將數據從一個活動傳遞到 android 中的另一個活動,您需要執行以下操作:
您可以使用 Intent 將數據從一個活動發送到另一個活動。 意圖包含操作和可選的附加數據。 可以使用意圖 putExtra() 方法將數據傳遞給其他活動。 數據作為附加項傳遞並且是鍵/值對。 鍵始終是一個字符串。 作為值,您可以使用原始數據類型 int、float、chars 等。我們還可以將 Parceable 和 Serializable 對象從一個活動傳遞到另一個活動。
Intent intent = new Intent(context, YourActivityClass.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.