在SO上有一个类似的问题,但我认为我的问题出在其他地方,或者我在这里遗漏了一些相当重要的问题。
我的对话框中有一个唯一的ID集:static final int DAYS_DIALOG_ID = 1;
我还有一个类成员变量:private TextView textViewSelectDayOfWeek;
在我的覆盖方法onCreate()
中,我有:
textViewSelectDayOfWeek = (TextView) findViewById(R.id.textViewSelectDayOfWeek);
textViewSelectDayOfWeek.setOnClickListener(this);
所以基本上,我在变量中的XML文件中定义我的TextView,并设置它的监听器。
在我的onClick(view v)
中,有一个带有以下情况的开关应该处理应该处理打开我的对话框的TextView的点击(请注意上述开关使用v.getId()
):
case R.id.textViewSelectDayOfWeek:
showDialog(DAYS_DIALOG_ID);
break;
我的覆盖方法onCreateDialog(int id)
还包含一个使用提供的ID的switch语句。处理此特定问题导致对话框的情况如下:
case DAYS_DIALOG_ID:
final CharSequence[] daysOfWeek = { "@string/stringMonday"}; // 7 days, skimming unimportant stuff
return new AlertDialog.Builder(this)
.setTitle("@string/stringSelectDayDialogTitle")
.setMultiChoiceItems(daysOfWeek,
new boolean[] {true, true, true, true, true}, // Sets first 5 days as checked by default
new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int day, boolean isChecked) {
Toast.makeText(getApplicationContext(), daysOfWeek[day], Toast.LENGTH_SHORT).show();
}
})
.create();
现在,如果我点击带有ID textViewSelectDayOfWeek的TextView,我的应用程序崩溃了。
我在调用Toast
之前尝试onClick()
showDialog(DAYS_DIALOG_ID)
中的邮件,并且在我的应用崩溃之前没有显示该消息。
我该怎么做才能解决这个问题?我相信我提到了我的代码的所有重要部分,但感到鼓励请求任何可能有用的东西。
提前致谢。
答案 0 :(得分:0)
我当然希望这有助于某人。
正如thinksteep所提到的,抛出的异常实际上非常有用:)
我有一个7周工作日的数组,我提供了一个不完整的数组,其中只包含5个布尔值,用于定义默认情况下是否检查日期,认为剩余的值将使用默认值初始化样。