這個小東西開始讓我非常沮喪。我認爲這是事實,但我認爲我並沒有清楚地瞭解Android的工作原理。如何將主要活動和日期選擇器分離到自己的類
無論如何,問題是我的android應用程序將有一些按鈕,當按下時會打開日期或時間選擇器對話框。我知道如何直接在主要活動本身的類中實現它們,但是我不認爲這是維護原因的好方法,而且如果我將在某一天進一步開發該應用程序。
我試圖通過幾種不同的方式做到這一點,每次嘗試時都失敗。這讓我對做什麼以及什麼問題毫無頭緒。
這裏有一種方法我試着這樣做:
主要活動(我簡化,並嘗試只提供必要的代碼,因爲它的長)。這是遵循單例設計模式。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dateButton = (Button) findViewById(R.id.editDateButton);
dateButton.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if(view.getId() == R.id.editStartDateButton) {
DatePickers.getInstance().setDate(dateButton);
}
}
該日期選擇器類(延伸活性;還簡化了代碼和所有不必要的東西除去):
private static DatePickers self = null;
public static DatePickers getInstance() {
if (null == self) {
self = new DatePickers();
}
return self;
}
public void setDate(Button button) {
theButtonUsed = button;
showDialog(DATE_DIALOG_ID);
}
後ShowDialog的調用類類似於機器人的開發者網站的示例Hello-DatePicker。
此外,我試圖做的很像here,但不同之處在於,當點擊dateButton時,它會啓動日期選取器對話框的新活動。在這種情況下,日期選擇器類是這樣的:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.datePicker);
showDialog(DATE_DIALOG_ID);
}
而其餘的,因爲它是在Android開發人員網站的Hello-的DatePicker例子。這兩種解決方案都會導致我的應用程序崩潰並被迫退出的問題。
我希望你明白這個問題是什麼,你可以引導我,並顯示我做錯了什麼。我試圖做到這一點,只提供必要的信息。
感謝 -Z
編輯:
正如我在一個評論都提到,這個真正的問題是,我簡直忘了新的活動添加到清單文件。接受的答案可能會解決一些其他問題。我希望這對面臨類似問題的任何人都有幫助。
謝謝您的回答。這經過了一些修改,但這個問題的真正原因是真的沒有意思:我忘了將新的活動添加到清單文件中:3 – zaplec
哪些修改適用?它沒有以原始形式工作?如果你評論或編輯serkan的原始答案將是有用的。10q – Ewoks