任何机构都可以从Hello Android书中解释这段代码

时间:2010-11-27 06:18:42

标签: android

我无法理解Hello Android一书中第68-69页的这段代码。代码中使用的一些方法对我来说是新的。任何人都可以详细说明并解释代码。

private static final String TAG = "Sudoku" ;
private void openNewGameDialog() {
       new AlertDialog.Builder(this)
      .setTitle(R.string.new_game_title)
      .setItems(R.array.difficulty, new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialoginterface,int i) {
           startGame(i);
          }
})
.show();
}
private void startGame(int i) {
Log.d(TAG, "clicked on " + i);
// Start game here...
}

1 个答案:

答案 0 :(得分:2)

所有这一切都是当你调用openNewGameDialog()时,它将创建一个带有指定标题的alertdialog和来自资源文件的选项列表(“R.array.difficulty”是一个整数值,最终指向声明的字符串数组在文件/res/values/arrays.xml中)。 AlertDialog是一种从用户获取输入的简单方法。它也可以用于输出,但许多人更喜欢Toast来完成该任务。该 .show()在它结尾处将对话框带到前台。

当在该调用中添加项目时,会为它们分配一个onClick侦听器,当单击某个项目时,它会将该项目的索引发送到startGame。在该函数中,它只向logcat调试系统发送包含索引的消息。