DatePicker 空指针异常
DatePicker NullPointerException
我想使用 DatePicker,但在单击按钮时出现 NullPointerException。
我在 google 地图上使用长按侦听器来添加标记...此日期选择器仅用于保存在外部数据库中。
在标记中我只显示标题和摘要。
代码
googlemap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
public void onMapLongClick(final LatLng latlng) {
LayoutInflater li = LayoutInflater.from(context);
final View v = li.inflate(R.layout.alertlayout, null);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(v);
builder.setCancelable(false);
builder.setPositiveButton("Criar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
LayoutInflater li = LayoutInflater.from(context);
final View v = li.inflate(R.layout.alertlayout, null);
EditText title = (EditText) v.findViewById(R.id.ettitle);
EditText snippet = (EditText) v.findViewById(R.id.etsnippet);
//EditText data = (EditText) findViewById(R.id.etdata);
// EditText data = (EditText) findViewById(R.id.etdata);
DatePicker data = (DatePicker) findViewById(R.id.datePicker);
String edata = (data.getDayOfMonth()+ "/" + data.getMonth() + "/" + data.getYear()); //line 84
googlemap.addMarker(new MarkerOptions()
.title(title.getText().toString())
.snippet(snippet.getText().toString())
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))
.position(latlng)
//.snippet(data.getText().toString())
);
// String edata = data.getText().toString();
dao = new LocalizacoesDAO(context);
dao.inserirLocalizacoes(new Localizacoes(title.getText().toString(),snippet.getText().toString(),latlng, edata));
}
});
builder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
错误
04-04 20:20:35.982 2734-2734/com.partytime.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at com.partytime.myapplication.MainActivity.onClick(MainActivity.java:84)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4963)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
at dalvik.system.NativeStart.main(Native Method)
您正在将 edata 作为 function.use 这个
String edata = data.getDayOfMonth()+ "/" + data.getMonth() + "/" + data.getYear();
或者将日期、月份和年份作为单独的字符串并将它们合并为一个字符串。
发现我的错误 ¬¬
我没有在正确的视图中调用日期选择器 ¬¬
DatePicker data = (DatePicker) v.findViewById(R.id.datePicker);
我想使用 DatePicker,但在单击按钮时出现 NullPointerException。
我在 google 地图上使用长按侦听器来添加标记...此日期选择器仅用于保存在外部数据库中。 在标记中我只显示标题和摘要。
代码
googlemap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
public void onMapLongClick(final LatLng latlng) {
LayoutInflater li = LayoutInflater.from(context);
final View v = li.inflate(R.layout.alertlayout, null);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(v);
builder.setCancelable(false);
builder.setPositiveButton("Criar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
LayoutInflater li = LayoutInflater.from(context);
final View v = li.inflate(R.layout.alertlayout, null);
EditText title = (EditText) v.findViewById(R.id.ettitle);
EditText snippet = (EditText) v.findViewById(R.id.etsnippet);
//EditText data = (EditText) findViewById(R.id.etdata);
// EditText data = (EditText) findViewById(R.id.etdata);
DatePicker data = (DatePicker) findViewById(R.id.datePicker);
String edata = (data.getDayOfMonth()+ "/" + data.getMonth() + "/" + data.getYear()); //line 84
googlemap.addMarker(new MarkerOptions()
.title(title.getText().toString())
.snippet(snippet.getText().toString())
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))
.position(latlng)
//.snippet(data.getText().toString())
);
// String edata = data.getText().toString();
dao = new LocalizacoesDAO(context);
dao.inserirLocalizacoes(new Localizacoes(title.getText().toString(),snippet.getText().toString(),latlng, edata));
}
});
builder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
错误
04-04 20:20:35.982 2734-2734/com.partytime.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at com.partytime.myapplication.MainActivity.onClick(MainActivity.java:84)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4963)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
at dalvik.system.NativeStart.main(Native Method)
您正在将 edata 作为 function.use 这个
String edata = data.getDayOfMonth()+ "/" + data.getMonth() + "/" + data.getYear();
或者将日期、月份和年份作为单独的字符串并将它们合并为一个字符串。
发现我的错误 ¬¬
我没有在正确的视图中调用日期选择器 ¬¬
DatePicker data = (DatePicker) v.findViewById(R.id.datePicker);