2011-02-13 80 views
7

我正在拉我的头发在这一个。Android输入对话框返回输入值

我有一个应用程序,当你按菜单项时,我希望它显示一个输入警报对话框。当用户点击“确定”时,他们在对话框中输入到EditText中的文本想要被返回以供稍后在活动中使用。

因此,我认为把:

name = input.getText().toString(); //input is an EditView which is the setView() of the dialog 

“确定”按钮,将工作的onclick内,但事实并非如此。 Eclipse告诉我,我不能在onClick中设置名称,因为它不是final的,但是如果我将name的定义更改为final,它不能被明显改变,因此不能在onClick()中设置。

下面是该位的全码:

String routeName = ""; 

     AlertDialog.Builder alert = new AlertDialog.Builder(this); 

     alert.setTitle("Title"); 
     alert.setMessage("Message"); 

     // Set an EditText view to get user input 
     final EditText inputName = new EditText(this); 
     alert.setView(inputName); 

     alert.setPositiveButton("Set Route Name", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      routeName = inputName.getText().toString(); 
      } 
     }); 

     alert.show(); 

我必须在这里做一些非常愚蠢的,因为我的年龄周围一派,发现没有其他人同样的问题。

任何人都可以请赐我吗?

谢谢您的时间,

InfinitiFizz

+0

请张贴更多代码! – user432209 2011-02-13 20:22:24

+0

对不起!现在用代码更新主要问题。 – 2011-02-13 20:30:49

回答

3

事实上,你不能只是anythingy你onlcick,这是一个匿名函数我相信里面。你可以做的是获得上下文,并从那里找到你的观点。这将是这个样子:

​​

您还可以通过在你的听众打电话v.getContext()使用v说法,对于instace。

+0

感谢Nanne的回复,但我会在哪里定义“yourButton”?这是“确定”按钮吗?因为它似乎AlertDialog有一个特定的setPositiveButton()方法来创建该按钮。你的意思是我可以使用该视图中定义的按钮为该对话框的自定义版本创建自定义视图,并使用按钮findById按钮来获取按钮?对不起,我对于正确的android开发还很陌生。 – 2011-02-13 20:42:33

2

您可以使routerName成为一个成员变量。