3

我有一个 AlertDialog 并将 EditText 放入其中,但我希望我的 EditText 仅接受以下输入:
(0,1,2,3,4,5,6,7,8,9,.,,)

我怎样才能做到这一点?

这是我的代码:

final AlertDialog.Builder alert = new AlertDialog.Builder(Treatment.this);
alert.setTitle("Weigthed Mean!");
alert.setIcon(R.drawable.droid);

Bundle b = getIntent().getExtras();
final TextView sum = (TextView) findViewById(R.id.fakeDB);
sum.setText(b.getCharSequence("input"));

final EditText x = new EditText (Treatment.this);
final EditText y = new EditText (Treatment.this);

x.setText(sum.getText().toString());
y.setHint("Enter the weights to the x values");

LinearLayout ll=new LinearLayout(Treatment.this);
ll.setOrientation(LinearLayout.VERTICAL);

ll.addView(x);
ll.addView(y);
alert.setView(ll);

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {                
        alert.setOnCancelListener(null);
    }
});

alert.create();
alert.show();
4

3 回答 3

3

以编程方式设置EditText类型尝试:

x.setInputType(InputType.TYPE_CLASS_NUMBER);

您可以使用带有标志的类来创建十进制,例如:

x.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

但它不会添加','但是@CodeMonkey是正确的

检查输入类型以获取有关标志和类类型的更多信息

于 2013-11-11T03:01:27.243 回答
2

@Osama 在这里是正确的,您可以在此处阅读有关更改键盘类型的更多信息EditText也可以通过设置 a来指定您希望出现的字符KeyListener

x.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
x.setKeyListener(DigitsKeyListener.getInstance("0123456789.,"));

或类似的东西。

于 2013-11-11T03:53:04.720 回答
0
final EditText x = new EditText (Treatment.this);
final EditText y = new EditText (Treatment.this);

x.setKeyListener(DigitsKeyListener.getInstance("0123456789.,"));
y.setKeyListener(DigitsKeyListener.getInstance("0123456789.,"));
于 2013-11-11T04:05:24.077 回答