我试图创建一个布局,在文本视图中显示收到的位置更新,但我不断收到此错误,我做错了什么?
提前感谢帮助,我们将不胜感激!
以下是错误:
E / AndroidRuntime:致命异常:主要 处理:com.example.defro.app,PID:7731 java.lang.NullPointerException:尝试调用虚拟>方法' void android.widget.TextView.setText(java.lang.CharSequence)'在null>对象引用上 在com.example.defro.app.MainActivity $ 1.onLocationChanged(MainActivity.java:29)`
第29行是:
txtLoc.setText(String.valueOf(iaLocation.getLongitude() + ", " + iaLocation.getLatitude()));
Main_Activity:
public class MainActivity extends AppCompatActivity {
IALocationManager mLocationManager;
IALocationListener mLocationListener = new IALocationListener() {
@Override
public void onLocationChanged(IALocation iaLocation) {
TextView txtLoc = (TextView) findViewById(R.id.textView);
txtLoc.setText(String.valueOf(iaLocation.getLongitude() + ", " + iaLocation.getLatitude()));
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
};
private final int CODE_PERMISSIONS = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLocationManager = IALocationManager.create(this);
String[] neededPermissions = {
Manifest.permission.CHANGE_WIFI_STATE,
Manifest.permission.ACCESS_WIFI_STATE,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.BLUETOOTH,
Manifest.permission.BLUETOOTH_ADMIN
};
ActivityCompat.requestPermissions(this, neededPermissions, CODE_PERMISSIONS);
}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//Handle if any of the permissions are denied, in grantResults
}
protected void onResume() {
super.onResume();
mLocationManager.requestLocationUpdates(IALocationRequest.create(), mLocationListener);
}
protected void onPause() {
mLocationManager.removeLocationUpdates(mLocationListener);
super.onPause();
}
protected void onDestroy() {
mLocationManager.destroy();
super.onDestroy();
}
}
content_main.xml:
<TextView
android:layout_width="wrap_content"
android:layout_height="23dp"
android:text="Lat, Long"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.051"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.032" />
答案 0 :(得分:2)
在onCreate方法
中写下这一行TextView txtLoc = (TextView) findViewById(R.id.textView);
将ID添加到TextView
android:id="@+id/textView"
答案 1 :(得分:1)
您正在将 TextView 链接为TextView txtLoc = (TextView) findViewById(R.id.textView);
但是,XML布局文件中没有定义 ID 。
在content_main.xml
中定义您的Textview ID,例如android:id="@+id/textView"
答案 2 :(得分:1)
乍一看,textView似乎没有
android:id="@+id/textView"
可能是它无法找到视图。另外,您可能希望获得onCreate()
中textView的引用,并将其与null检查一起使用。