单击折线并在 android 中显示结果
Clicking polyline and display the result in android
我需要一些帮助。正如您在我的代码中看到的那样。好像我总是得到else的结果。
例如:字符串s点击折线后结果为1。结果应该在(s == "1")
然后执行toast。但最后总会走到else
@Override
public void onPolylineClick(Polyline polyline) {
// Flip the values of the red, green and blue components of the polyline's color.
polyline.setColor(polyline.getColor() ^ 0x00ffffff);
String s = polyline.getId().substring(2);
if (s == "0")
{
Toast.makeText(getActivity(), "pl0 here" , Toast.LENGTH_SHORT).show();
}
else if (s == "1")
{
Toast.makeText(getActivity(), "pl1 here", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getActivity(), "Inside ELSe", Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(), "" + s, Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(), "pl" + polyline.getId().substring(2), Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(), "" + s + "==" + "pl" + polyline.getId().substring(2), Toast.LENGTH_LONG).show();
}
}
在 java 中,您不使用 == 评估字符串,因为 String 是一个对象而不是原始类型。
要评估字符串,请使用:
string.equals
string.equals忽略大小写
在您的情况下,更改为:
if ("0".equals(s)) {
Toast.makeText(getActivity(), "pl0 here" , Toast.LENGTH_SHORT).show();
}
else if ("1".equals(s)) {
Toast.makeText(getActivity(), "pl1 here", Toast.LENGTH_SHORT).show();
}
会(可能)有所帮助,具体取决于 s 的值。
遇到问题尽量调试。
注意 == 运算符,Java 无法以同样的方式识别它:
What’s the difference between equals() and ==?
if (s.equals("0"))
{
Toast.makeText(getActivity(), "pl0 here" , Toast.LENGTH_SHORT).show();
}
else if (s.equals("1"))
{
Toast.makeText(getActivity(), "pl1 here", Toast.LENGTH_SHORT).show();
}
equals() 方法和== 运算符都用于比较Java 中的两个对象。 == 是运算符,equals() 是方法。但是 == 运算符比较堆中对象的引用或内存位置,无论它们是否指向相同的位置。每当我们使用 operator new 创建任何对象时,它都会为该对象创建新的内存位置。所以我们使用 == 运算符来检查两个对象的内存位置或地址是否相同。
您可以在以下位置阅读更多信息:
http://www.java67.com/2012/11/difference-between-operator-and-equals-method-in.html#ixzz4bPGNw3SY
我需要一些帮助。正如您在我的代码中看到的那样。好像我总是得到else的结果。
例如:字符串s点击折线后结果为1。结果应该在(s == "1")
然后执行toast。但最后总会走到else
@Override
public void onPolylineClick(Polyline polyline) {
// Flip the values of the red, green and blue components of the polyline's color.
polyline.setColor(polyline.getColor() ^ 0x00ffffff);
String s = polyline.getId().substring(2);
if (s == "0")
{
Toast.makeText(getActivity(), "pl0 here" , Toast.LENGTH_SHORT).show();
}
else if (s == "1")
{
Toast.makeText(getActivity(), "pl1 here", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getActivity(), "Inside ELSe", Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(), "" + s, Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(), "pl" + polyline.getId().substring(2), Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(), "" + s + "==" + "pl" + polyline.getId().substring(2), Toast.LENGTH_LONG).show();
}
}
在 java 中,您不使用 == 评估字符串,因为 String 是一个对象而不是原始类型。
要评估字符串,请使用: string.equals string.equals忽略大小写
在您的情况下,更改为:
if ("0".equals(s)) {
Toast.makeText(getActivity(), "pl0 here" , Toast.LENGTH_SHORT).show();
}
else if ("1".equals(s)) {
Toast.makeText(getActivity(), "pl1 here", Toast.LENGTH_SHORT).show();
}
会(可能)有所帮助,具体取决于 s 的值。
遇到问题尽量调试。
注意 == 运算符,Java 无法以同样的方式识别它:
What’s the difference between equals() and ==?
if (s.equals("0"))
{
Toast.makeText(getActivity(), "pl0 here" , Toast.LENGTH_SHORT).show();
}
else if (s.equals("1"))
{
Toast.makeText(getActivity(), "pl1 here", Toast.LENGTH_SHORT).show();
}
equals() 方法和== 运算符都用于比较Java 中的两个对象。 == 是运算符,equals() 是方法。但是 == 运算符比较堆中对象的引用或内存位置,无论它们是否指向相同的位置。每当我们使用 operator new 创建任何对象时,它都会为该对象创建新的内存位置。所以我们使用 == 运算符来检查两个对象的内存位置或地址是否相同。
您可以在以下位置阅读更多信息:
http://www.java67.com/2012/11/difference-between-operator-and-equals-method-in.html#ixzz4bPGNw3SY