在alertdialog中进行EditText自定义

时间:2013-11-11 02:57:13

标签: android

我有一个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();

3 个答案:

答案 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.,"));