android按钮获取输入框,Android-活动如何从对话框获取用户输入的文本

我以为这很容易,但是让我难以理解.我有一个活动,该活动显示一个自定义对话框,允许用户输入一些文本,然后定义“确定”和“取消”按钮.我使用show()显示它.但是我不知道如何从对话框中获取值.

我使用的是自定义对话框,因为它会对文本输入进行一些验证.我想我可以将其更改为从Activity派生,然后使用startActivityForResult进行显示,但是-至少基于我以前的Windows编程天数-我认为从Android对话框中获取用户输入的值很容易.

我是否忽略了某种类型的回叫或监听器机制?

我什至尝试将其作为一个简单的解决方案,但是除非让它的修饰符设置为final,否则它不会让我分配给值(1),然后如果我说可以将其修饰为final(2),就不会让我分配给它,因为最终局部变量值无法分配,因为它是用封闭类型定义的”

String value;

final EditText input = (EditText)findViewById(R.id.theText);

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

builder.setView(input);

builder.setPositiveButton("OK", new DialogInterface.OnClickListener()

{

public void onClick(DialogInterface dialog, int whichButton)

{

value = input.getText().toString();

dialog.dismiss();

}

});

builder.show();

[已更新解决方案的编辑] ============================

我最终要做的主要事情是添加了将Handler传递给对话框的功能.在对话框类中,我添加了:

private Handler clientHandler = null;

public void AddHandler(Handler client)

{

this.clientHandler = client;

}

并更新对话框的确定​​按钮,单击:

/**

* The user pressed the OK button

* @param v

*/

public void okClick(View v)

{

// save the entered string

this.tag = this.tagEditText.getText().toString();

if ( null != this.clientHandler )

{

// Notify the client to update itself

this.clientHandler.sendMessage( clientHandler.obtainMessage());

}

cancel();

}

然后在Activity的onCreate()中显示我添加的对话框:

tagDialog = new tagDialog(this);

tagHandler = new Handler()

{

@Override

public void handleMessage(Message msg)

{

tag = tagDialog.tag;

}

};

tagDialog.AddHandler(tagHandler);

解决方法:

听起来您想将消息发送给处理程序.使用gainMessage()获取

消息对象,然后通过其消息队列将消息发送到处理程序.

标签:dialog,android

来源: https://codeday.me/bug/20191023/1914665.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值