我的代码:
//GeolocationActivity.java
@Override
public void onLocationChanged(Location arg0) {
if(gpson&&arg0!=null)
{
tv1.setText((int)arg0.getLongitude()); //there is an error
tv2.setText((int)arg0.getLatitude());
tv3.setText((int)arg0.getAccuracy());
}
}
private void setUpGPS()
{
if(locman.isProviderEnabled(LocationManager.GPS_PROVIDER) == false)
{
Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(i);
Toast.makeText(getApplicationContext(), R.string.gps_enabling, Toast.LENGTH_LONG).show();
}else{
setContentView(R.layout.subactivity_gps); gpson=true;
//some code removed
tv1 = (TextView)findViewById(R.id.gps_longitude_txt);
tv2 = (TextView)findViewById(R.id.gps_langitude_txt);
tv3 = (TextView)findViewById(R.id.gps_accuracy_text);
Criteria c = new Criteria();
prov = locman.getBestProvider(c, false);
Location loc = locman.getLastKnownLocation(prov);
if(loc!=null)onLocationChanged(loc);
}
}
//setUpGPS() is called in onCreate() - there are also other variables initzialized
logcat的:
10-14 13:52:41.575: E/AndroidRuntime(11386): FATAL EXCEPTION: main
10-14 13:52:41.575: E/AndroidRuntime(11386): android.content.res.Resources$NotFoundException: String resource ID #0x12
10-14 13:52:41.575: E/AndroidRuntime(11386): at android.content.res.Resources.getText(Resources.java:1068)
10-14 13:52:41.575: E/AndroidRuntime(11386): at android.widget.TextView.setText(TextView.java:4546)
10-14 13:52:41.575: E/AndroidRuntime(11386): at com.radzik.myapp.GeolocationActivity.onLocationChanged(GeolocationActivity.java:185)
XML布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.radzik.myapp.GeolocationActivity" >
//some code removed
<TextView
android:id="@+id/gps_longitude"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/gps_backmain"
android:layout_below="@+id/textView1"
android:layout_marginTop="30dp"
android:text="@string/longitude"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/gps_longitude_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/gps_longitude"
android:layout_alignBottom="@+id/gps_longitude"
android:layout_alignLeft="@+id/textView1"
android:layout_marginLeft="20dp"
android:text=" "
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/gps_langitude"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/gps_longitude"
android:layout_below="@+id/gps_longitude"
android:text="@string/langitude"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/gps_langitude_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/gps_langitude"
android:layout_alignBottom="@+id/gps_langitude"
android:layout_alignLeft="@+id/textView1"
android:text=" "
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/gps_accuracy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/gps_langitude"
android:layout_below="@+id/gps_langitude"
android:text="@string/gps_accuracy"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/gps_accuracy_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/gps_langitude_txt"
android:layout_toRightOf="@+id/gps_longitude_txt"
android:text=" "
android:textAppearance="?android:attr/textAppearanceMedium" />
//some code removed
</RelativeLayout>
我不知道这个错误的原因。尝试调试,但没有找到 - 一切都是正确定义的。在这种情况下请帮帮我
答案 0 :(得分:14)
您正在为textview提供一个整数值,以便它可以在R.java中找到匹配的ID
试着像这样结合这个值
@Override
public void onLocationChanged(Location arg0) {
if(arg0!=null)
{
tv1.setText(String.valueOf(arg0.getLongitude())); //there is an error
tv2.setText(String.valueOf(arg0.getLatitude()));
tv3.setText(String.valueOf(arg0.getAccuracy()));
}
}