如何在对话框中选择项目后告诉应用程序该做什么?

时间:2011-01-04 23:59:26

标签: java android eclipse

在我的应用中,有一个对话框,可让用户选择一个项目。按下确定按钮后,应用程序应拨打与该项目关联的号码。我能够在对话框中显示项目,应用程序知道它们是选项,但我无法确定如何选择应用程序进程然后拨号。 这是我到目前为止所得到的

 final CharSequence[] item = {"item1", "item2", "item3", "item4"};

         AlertDialog.Builder ab=new AlertDialog.Builder(crossingActivity.this);
   ab.setTitle("Which item?");
   ab.setSingleChoiceItems(item, -1, new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int whichButton) {
             }
         })
         .setPositiveButton("Call", new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int whichButton) {
                  if item = "item1"? android.intent.action.DIALtel:"number1";
              if item = "item2"? android.intent.action.DIALtel:"number2";
              if item = "item3"? android.intent.action.DIALtel:"number3";
              if item = "item4"? android.intent.action.DIALtel:"number4";

对话框打开,允许您选择一个项目,这就是我被卡住的地方。 Eclipse给出了一个错误,所有的“if”上写着“令牌上的语法错误”,如果“,无效的类型。我认为我只是错误地启动它,我只是不知道如何正确启动它。

2 个答案:

答案 0 :(得分:2)

你的if语句没有任何意义。在尝试这样的事情之前,你可能想要阅读基本的java。您可以从if statements开始。

多个问题:我认为您正在尝试使用=将项目与字符串值进行比较。 =是赋值运算符,==用于比较基元。使用=是语法错误。

但是,因为您要比较要使用的字符串.equals。

if blah ? thing1 : thing2是一个三元运算符,我认为这不是你想要的。你只想根据项目选择做一些事情。

if (item.equals("item1")) {
  dialNumber("number1");
} else if (item.equals("item2") {
  dialNumber("number2");
}

但正如我所说,请在阅读之前先阅读一些基本的java教程。

答案 1 :(得分:0)

您是否应该测试变量whichButton并将其与项目列表相匹配?

至于使用?运营商 - 我不是它的粉丝,除了LINEMAN78给出的原因之外,我发现它不像if-else逻辑那样可读......但如果你的jre支持它,它应该按照你的意图工作。

经验法则:总是尽量使代码可读...随着代码库变大,维护它所需的工作量也越大。然后最终你没有触及它很长时间 - 你或你团队中的其他人必须重新学习你的代码!