我有一个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();
答案 0 :(得分:3)
以预先设置EditText
类型尝试:
x.setInputType(InputType.TYPE_CLASS_NUMBER);
你可以使用带有标志的类来创建小数,如:
x.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
但它不会添加','然而@CodeMonkey是正确的
检查Input Types以获取有关标志和类的类型的更多信息
答案 1 :(得分:2)
@Osama在这里是正确的轨道,您可以阅读有关更改键盘类型here的更多信息。您也可以通过设置EditText
来指定您希望在KeyListener
中显示哪些字符:
x.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
x.setKeyListener(DigitsKeyListener.getInstance("0123456789.,"));
或类似的东西。
答案 2 :(得分: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.,"));