我的问题是:在android编程中如何将在AsyncTask的onPostExecute()方法中获得的double和string数据传递给另一个将接收此数据的活动。例如,传递双坐标和字符串名称,我在onPostExecute()方法中,然后将这些字符串数据传输到另一个活动。我附上我的代码。提前谢谢。
protected void onPostExecute(String result) {
super.onPostExecute(result);
String[] map = result.split("[\":,]");
int i = 64;
int a = 1;
String[] lat = new String[6000];
while (i < 5000) {
lat[a] = map[i];
i = i + 84;
a = a + 1;
}
int i2 = 76;
int a2 = 1;
String[] lng = new String[6000];
while (i2 < 5000) {
lng[a2] = map[i2];
i2 = i2 + 84;
a2 = a2 + 1;
}
int i3 = 1;
map_lat = new double[61];
while (i3 < 60) {
map_lat[i3] = Double.parseDouble(lat[i3]);
Log.i("JSON", "Lat: " + map_lat[i3]);
i3 = i3 + 1;
}
int i4 = 1;
map_lng = new double[61];
while (i4 < 60) {
map_lng[i4] = Double.parseDouble(lng[i4]);
Log.i("JSON", "Lng: " + map_lng[i4]);
i4 = i4 + 1;
}
int i5 = 40;
int a5 = 1;
map_loc = new String[6000];
while (i5 < 4950) {
map_loc[a5] = map[i5];
Log.i("JSON", "Loc: " + map_loc[a5]);
i5 = i5 + 84;
a5 = a5 + 1;
}
int i6 = 58;
int a6 = 1;
map_info = new String[6000];
while (i6 < 4950) {
map_info[a6] = map[i6];
Log.i("JSON", "Info: " + map_info[a6]);
i6 = i6 + 84;
a6 = a6 + 1;
}
double[] ab = map_lat;
double[] ac = map_lng;
String[] ad = map_loc;
String[] ae = map_info;
String af = "0";
public double[] Map(){
double[] ab = map_lat;
double[] ac = map_lng;
String[] ad = map_loc;
String[] ae = map_info;
return ab;
}
double[] ag = Map();
答案 0 :(得分:0)
在提问之前,请先google it.Have你试过that。有很多例子。
您可以使用意图,即在活动之间发送的消息。在intent中,您可以放置所有类型的数据,String,int等。
在您的情况下,在activity2中,在转到activity1之前,您将以这种方式存储String消息:
Intent intent = new Intent(activity2.this, activity1.class);
intent.putExtra("message", message);
startActivity(intent);
在activity1中,在onCreate()中,您可以通过检索Bundle(包含调用活动发送的所有消息)来获取String消息,并在其上调用getDouble():
Bundle bundle = getIntent().getExtras();
String message = bundle.getDouble("message");
答案 1 :(得分:0)
如果你想开始一项新活动,你应该做Soham所说的并将数据放在意图上。
如果要将数据发送回启动AsyncTask的活动,您可以发送该上下文的副本,并在执行结束时让AsyncTask调用特定方法,并通过该方法发送结果。 / p>
答案 2 :(得分:0)
从onPostExecute获取信息的一个好方法是使用接口。
public interface AsyncClass {
void processFinish(String[] output);
}
然后回到我们的MainActivity,你可以调用它来获取你想要的数据。
@Overide
public void processFinish(String[] output) {
String[] temp = output;
}
正如Soham回答的那样,如果您需要将此输出传递给另一个类,则可以将此输出传递给intent。