android开发中的一个……小问题,跪求各位看看是什么情况

qq_39114710 2017-12-24 04:29:13
有一个ImageButton按钮,我设置她点击之后会出现一个对话框,两个EditText,第一个输入一段文字(edit_note),第二个输入一个数值(edit_money)。但是在这个“确定”按钮的点击响应函数中无论我怎么用Double.valueOf(edit_money.getText().toString())都只能得到0.0。就是不管我输入什么数它都是0.0……这个问题弄得头都大了,还处在写代码的关键时刻上,恳请各位帮帮忙……

也加了一个isEmpty()的判断,也确定是在EditText中已经有输入内容之后再取值,但是都解决不了问题。

ImageButton ib_1=(ImageButton)findViewById(R.id.imageButton1);
ib_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final AlertDialog.Builder second_builder=new AlertDialog.Builder(Note_Activity.this);
LayoutInflater inflater=getLayoutInflater();
final View second_view=inflater.inflate(R.layout.second_layout,null);
second_builder.setView(R.layout.second_layout);
second_builder.setIcon(R.mipmap.money);
second_builder.setTitle(R.string.second_title);
final EditText edit_money=(EditText)second_view.findViewById(R.id.editText2);
final EditText edit_note=(EditText)second_view.findViewById(R.id.editText1);

second_builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
double ac = 0;
Intent intent=new Intent(Note_Activity.this,MainActivity.class);
SQLiteDatabase db=dbSQL.getWritableDatabase();
ContentValues values=new ContentValues();

if(edit_money.getText().toString().isEmpty())
{
Toast.makeText(Note_Activity.this,"输入数据为空!",Toast.LENGTH_SHORT).show();
}
else
{
ac=Double.parseDouble(edit_money.getText().toString());
}

Log.i("tag-------ac:",String.valueOf(ac));

日志输出:12-24 16:00:10.933 2651-2651/com.administrator.note I/tag-------ac:: 0.0
...全文
267 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
moonFY 2017-12-27
  • 打赏
  • 举报
回复
final View second_view=inflater.inflate(R.layout.second_layout,null); second_builder.setView(R.layout.second_layout); final EditText edit_money=(EditText)second_view.findViewById(R.id.editText2); 要么 是

View subView  = inflater.inflate(R.layout.sub_view, ...); 
parent.setView(subView);
final EditText mEditText=(EditText)subView.findViewById(R.id.edit);
要么 是

parent.setView(R.layout.subView, ...);
final EditText mEditText=(EditText)parent.findViewById(R.id.edit);
这两种形式的 要么子View 去做,然后将子View加载到父View上 要么父View去做,
qq_39114710 2017-12-26
  • 打赏
  • 举报
回复
谢谢各位……后来尝试了很久发现原因是因为那个TextView是一个限定数字输入的TextView。使用这个的初衷是让用户只能输入数字,最后没办法,我改成了一个普通的TextView,发现一切就正常了。 虽然这样就存在了用户输入不为数字的危险……不过也算是一个解决办法了。我对于不同类型的TextView理解得还很不够。谢谢各位。
文明游戏 2017-12-25
  • 打赏
  • 举报
回复
你的Dialog有setView吗,你这个LayoutInflater 没有附加到任何view上面啊,这样肯定拿到都是0.自定义content要setview的吧
江三木洛 2017-12-25
  • 打赏
  • 举报
回复
second_builder.setView(R.layout.second_layout); 这句错了,改成 second_builder.setView(second_view); 你这样相当于有两个second_layout布局
luan1010 2017-12-24
  • 打赏
  • 举报
回复
请无视上边~脑子喝多了
luan1010 2017-12-24
  • 打赏
  • 举报
回复
不要用final修饰EditText,final修饰的变量是常量,只能赋值一次,之后不会发生改变了就.
qq_39114710 2017-12-24
  • 打赏
  • 举报
回复
求解啊各位大大,现在楼主也很着急

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧