【问题标题】:Set EditText to numeric entry in code?将 EditText 设置为代码中的数字输入?
【发布时间】:2011-05-04 17:42:25
【问题描述】:

好的, 我有一个为输入值创建 AlertDialog 的应用程序。所有值都是数字类型,我使用以下代码来获取输入。

public class DialogWithInputBox extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    final AlertDialog.Builder alert = new AlertDialog.Builder(this);
    final EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
    alert.setView(input);
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() 
    {
        public void onClick(DialogInterface dialog, int whichButton)
        {
            String value = input.getText().toString().trim();
            Toast.makeText(getApplicationContext(), value,
                    Toast.LENGTH_SHORT).show();
        }
    });

    alert.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() 
            {
                public void onClick(DialogInterface dialog, int whichButton) 
                {
                    dialog.cancel();
                }
            }
    );
    alert.show();

}
}

我的问题是,这不适用于 Android 1.6,但我希望我的应用可以在 1.6 上运行。在适用于 1.6 的代码中是否有另一种方法可以做到这一点?我没有 AlertDialog 的布局,所以我不能在那里设置它。

【问题讨论】:

  • 我看到的所有方法似乎都是在 API 4 之前定义的......这意味着它应该可以使用 1.6。您是否在项目首选项中设置了正确的 API 级别,以确保问题在此代码中?
  • 另外,“不起作用”是什么意思?您在哪里/遇到什么错误?
  • 键盘即将启动,但它处于文本模式而不是数字模式。

标签: android dialog android-layout


【解决方案1】:

我听说 InputTypes 发生了一些关于数字的古怪事情。尝试查看电话类型是否可以代替:

input.setInputType(InputType.TYPE_CLASS_PHONE);

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多