csh_34 2013-05-16 01:38 采纳率: 0%
浏览 6130

Android: EditText.getText().toString()不能运行

我使用下面的代码用一个 EditText 创建一个 AlertDialog:

AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Title");
builder.setView(LayoutInflater.from(context).inflate(R.layout.dialog_view, null));
builder.setNegativeButton("Cancel", null);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        mInput = ((EditText) LayoutInflater.from(context).inflate(R.layout.dialog_view, null).findViewById(R.id.etxtDialog)).getText().toString();
    }
});
builder.show();

当我运行这段代码时,出现mInput.length() == 0, 所以字符串是空的。
代码行mInput = ((EditText) LayoutInflater.from(context).inflate(R.layout.dialog_view, null).findViewById(R.id.etxtDialog)).getText().toString();虽然执行了,但是EditText 不包含任何字符。为什么这段代码没有运行出结果呢?

  • 写回答

1条回答 默认 最新

  • luhuajcdd 2013-05-16 02:45
    关注

    LayoutInflater.from(context).inflate(R.layout.dialog_view, null) 这样会得到一个新的view, 不是你想要的那个(之前inflate 出来的那个)。
    解决办法是:

    View  view = builder.setView(LayoutInflater.from(context).inflate(R.layout.dialog_view, null));
    final  EditText et = (EditText) view.findViewById(R.id.etxtDialog))
    builder.setView(view);
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            mInput = et.getText().toString();
        }
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮