-2

我想知道,如何将多个值从 Toast 传递到多个 TextView。我有两个类,MainActivity 和 LoginActivity。Toast 最初显示在 MainActivity 类中,但我想在 LoginActivity 类中显示从 toast 到 TextView 的值。

这是我在 MainActivity 中的代码部分:

double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
  // show Toast
  Toast.makeText(getApplicationContext(),"Lokasi latitude: " + latitude + " Longitude : " + longitude, Toast.LENGTH_LONG).show();

      Intent i = new Intent(getApplicationContext(),LoginActivity.class);
      startActivity(i);
4

7 回答 7

1

在您的主要活动课程中:

Intent i = new Intent(getApplicationContext(),LoginActivity.class);
i.putExtra("val1",latitude);
i.putExtra("val2",longitude);
startActivity(i);

在您的 loginactivity 类中

Bundle extras = getIntent().getExtras();
int value1 = extras.getInt("val1");
int value2 = extras.getInt("val2");

然后在文本视图中显示这个值:

textview1.setText(String.valueOf(value1));
textview2.setText(String.valueOf(value2));
于 2013-09-18T07:53:07.027 回答
0

这取决于哪个活动首先出现,如果登录是在主要活动之后的下一个,因此您需要将纬度和经度保存为变量,然后将其作为附加信息传递给 LoginActivity,

  Intent i = new Intent(getApplicationContext(),LoginActivity.class);
  i.putExtra("lat", latitude);
  i.putExtra("lng", longitude);
  startActivity(i);

并在登录活动中从意图中读取它们的 onCreate ...

于 2013-09-18T07:54:39.377 回答
0

我认为您想要的是查看 Bundle 类。您可以实例化一个 Bundle 并通过字符串、整数等发送。

Intent intent = new Intent(Dashboard.getInstance(), Overview.class);
Bundle bundle = new Bundle();
bundle.putLong("userId", u.getServerId());
intent.putExtras(bundle);
Dashboard.getInstance().startActivity(intent);

我在我的应用程序中是如何做到的。

然后您可以访问活动 onCreate 中的数据

Bundle bundle = getIntent().getExtras();
userId = bundle.getLong("userId");
于 2013-09-18T07:55:04.567 回答
0

将所有数据(纬度,经度)放入intent extras,然后将其提取到LoginActivity的onCreate中并在那里显示吐司......

主要活动:

Intent i = new Intent(getApplicationContext(),LoginActivity.class);     
i.putExtra("lon", longitude);
i.putExtra("lat", latitude);
startActivity(i);

登录活动:

Toast.makeText(getApplicationContext(),"Lokasi latitude: " + getIntent().getExtras().getLong("lat")+ " Longitude : " + getIntent().getExtras().getLong("lon"), Toast.LENGTH_LONG).show();
于 2013-09-18T07:55:34.050 回答
0

您可以通过 Intent 传递值将值传递给 LoginActivity.class。i.putExtras("fieldname","你的价值");

于 2013-09-18T07:55:47.143 回答
0

这很简单。这是如何在 textview 中显示值的示例代码。

Example 1 : (Two TextView)

TextView tv = (TextView)findViewbyId(R.id.your_element_id);
tv.setText("Lokasi latitude: " + latitude);

TextView tv1 = (TextView)findViewbyId(R.id.your_element_id1);
tv.setText(" Longitude : " + longitude);

Example 2 : (One TextView)

TextView tv = (TextView) findViewbyId (R. id. your_element_id);
tv.setText("Lokasi latitude: " + latitude + "\n" +
            " Longitude : " + longitude);

你不需要两个不同的文本视图来显示两个不同的值。我不知道你的要求,但我仍然提供一个选项。

还有一件事,根据代码,值是双倍的,Textview 只支持字符串值。所以你必须将双精度转换为字符串值,这里是如何将双精度转换为字符串的示例

String value1 = String.valueof(latitude);
String value2 = String.valueof(longitude);

现在您可以像这样将值传递给 textview

tv.setText("Lokasi latitude: " + value1);
tv1.setText(" Longitude : " + value2);

(or)

tv.setText("Lokasi latitude: " + value1 + "\n" +
            " Longitude : " + value2);

我希望你有一些东西:)

于 2013-09-18T08:07:16.780 回答
0

您需要在LoginActivity中使用Intent传递该值,该值位于latitude & longitude

Intent mIntent = new Intent(getApplicationContext(),LoginActivity.class);
mIntent.putExtra("lat",latitude);
mIntent.putExtra("lon",longitude);
startActivity(mIntent);

并在LoginActivity中获取纬度和经度的值,并在TextView中使用。

double latitude = getIntent().getExtras().getDouble("lat");
double longitude = getIntent().getExtras().getDouble("lon");

tv_lat.setText(String.valueOf(latitude));
tv_lon.setText(String.valueOf(longitude));

它对我来说很完美,我也希望对你有用。试试看。

于 2013-09-18T08:17:06.250 回答