我从屏幕“A”开始。在屏幕 A 中,我导航到屏幕“B”,它将方向从纵向更改为横向。如果我现在按下后退按钮,则会出现此异常。
它甚至没有达到 OnCreate 代码
E/AndroidRuntime(518): FATAL EXCEPTION: main
E/AndroidRuntime(518): java.lang.RuntimeException: Unable to start activity ComponentInfo{be.coenen/be.coenen.TimeregistrationCardActivity}: java.lang.NullPointerException
E/AndroidRuntime(518): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
E/AndroidRuntime(518): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime(518): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3815)
E/AndroidRuntime(518): at android.app.ActivityThread.access$2400(ActivityThread.java:125)
E/AndroidRuntime(518): at android.app.ActivityThread$H. handleMessage(ActivityThread.java:2037)
E/AndroidRuntime(518): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(518): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(518): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(518): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(518): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(518): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime(518): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime(518): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(518): Caused by: java.lang.NullPointerException
E/AndroidRuntime(518): at be.coenen.TimeregistrationCardActivity.onCreateDialog(TimeregistrationCardActivity.java:314)
E/AndroidRuntime(518): at android.app.Activity.onCreateDialog(Activity.java:2472)
E/AndroidRuntime(518): at android.app.Activity.createDialog(Activity.java:881)
E/AndroidRuntime(518): at android.app.Activity.restoreManagedDialogs(Activity.java:870)
E/AndroidRuntime(518): at android.app.Activity.performRestoreInstanceState(Activity.java:816)
E/AndroidRuntime(518): at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1096)
E/AndroidRuntime(518): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2641)
` OnCreate 屏幕 A:
public class TimeregistrationOverviewActivity extends Activity {
/** Called when the activity is first created. */
private Context context;
private ArrayList<TimeregistrationOverview> listTimeRegOverView;
private TimeregistrationOverviewAdapter listViewAdapter;
private ListView listView;
private String emp, dateTimeRegistration;
private TextView txtDateDisplay;
private Button btnPickDate, btnInterventionRapport;
private int intYear, intMonth, intDay, arrayCount;
private Intent i = new Intent();
final Calendar c = Calendar.getInstance();
final int DATE_DIALOG_ID = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
try{
super.onCreate(savedInstanceState);
context = getApplicationContext();
setContentView(R.layout.main);
listView = (ListView) findViewById(R.id.android_TOlist1);
txtDateDisplay = (TextView) findViewById(R.id.TOdateDisplay);
btnPickDate = (Button) findViewById(R.id.TObtnDatum);
btnPickDate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showDialog(DATE_DIALOG_ID);
}
});
intYear = c.get(Calendar.YEAR);
intMonth = c.get(Calendar.MONTH);
intDay = c.get(Calendar.DAY_OF_MONTH);
// Get Employee ID
i = getIntent();
emp = i.getExtras().getString("Employee");
if (!(i.getExtras().getString("Date") == null)) {
dateTimeRegistration = i.getExtras().getString("Date");
}
// display the current date
updateDisplay();
// gegevens ophalen/updaten
new DownloadData().execute(LogInActivity.SERVICE_URI
+ "GetTimeregistrationOverview?Date=" + dateTimeRegistration
+ "&Employee=" + emp);
} catch (Exception e) {
ShowError();
}
}
OnCreate 屏幕 B:
public class TimeregistrationCardActivity extends Activity {
/** Called when the activity is first created. */
private TimeregistratrationCard timeRegistrationCard;
private Intent intent = new Intent();
private int id, minute, hour, minuteNow, hourNow;
private TextView date, customerName, description, taskDocNo, activity,
externalInfo, internalInfo, percentageComplete, project, startTime,
stopTime;
private CheckBox coaching;
private String employeeNo, dateTimeregistration;
private ProgressDialog m_ProgressDialog;
private Calendar c = Calendar.getInstance();
static final int TIME_DIALOG_ID = 0, TIME_DIALOG_ID2 = 1,
DATE_DIALOG_ID = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timeregistrationcard);
m_ProgressDialog = ProgressDialog.show(
TimeregistrationCardActivity.this, "", getResources()
.getString(R.string.ProgressDialog), true);
date = (TextView) findViewById(R.id.TRKtxtDatum);
customerName = (TextView) findViewById(R.id.TRKtxtKlantNaam);
description = (TextView) findViewById(R.id.TRKtxtDescription);
taskDocNo = (TextView) findViewById(R.id.TRKtxtTaskDocNo);
activity = (TextView) findViewById(R.id.TRKtxtActivity);
coaching = (CheckBox) findViewById(R.id.TRKchkCoaching);
externalInfo = (TextView) findViewById(R.id.TRKtxtExternalInformation);
internalInfo = (TextView) findViewById(R.id.TRKtxtInternalInformation);
percentageComplete = (TextView) findViewById(R.id.TRKtxtPercentageComplete);
project = (TextView) findViewById(R.id.TRKtxtProject);
startTime = (TextView) findViewById(R.id.TRKtxtStartTime);
stopTime = (TextView) findViewById(R.id.TRKtxtStopTime);
intent = getIntent();
id = intent.getExtras().getInt("ID");
employeeNo = intent.getExtras().getString("Emp");
dateTimeregistration = intent.getExtras().getString("Date");
new DownloadData().execute(LogInActivity.SERVICE_URI
+ "GetTimeregistrationCard?ID=" + id);
}