在项目中使用AlertDialog中加入EditText作为接收用户输入的界面,但是当EditText的InputType是文本时,InputType.TYPE_TEXT_VARIATION_NORMAL,有时候输入框中的文字就特别小,而别的输入类型则不存在这个问题,相关代码为: inputTextBox("昵称:",regUser.nickName,7,InputType.TYPE_TEXT_VARIATION_NORMAL); 输入界面的方法是:
/**
* 打开输入界面接受输入
* @param title 标题栏
* @param content 默认内容
* @param maxSize 最大输入字符数
* @param inputType 输入限制
*/
public void inputTextBox(String title,String content,int maxSize,int inputType){
AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setTitle(title);
alert.setIcon(android.R.drawable.ic_dialog_info);
final EditText input = new EditText(context);
input.setTextSize(maxSize); //设置输入的字符数
input.setInputType(inputType);
input.setText(content);
alert.setView(input);
alert.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
doTextInput(value);
repaint();
return;
}
}); alert.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return;
}
});
alert.show();
}
/**
* 打开输入界面接受输入
* @param title 标题栏
* @param content 默认内容
* @param maxSize 最大输入字符数
* @param inputType 输入限制
*/
public void inputTextBox(String title,String content,int maxSize,int inputType){
AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setTitle(title);
alert.setIcon(android.R.drawable.ic_dialog_info);
final EditText input = new EditText(context);
input.setTextSize(maxSize); //设置输入的字符数
input.setInputType(inputType);
input.setText(content);
alert.setView(input);
alert.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
doTextInput(value);
repaint();
return;
}
}); alert.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return;
}
});
alert.show();
}
input.setTextSize(maxSize); 这行代码设置的字体的高度,而不是最多可以输入的字符个数修改代码如下:
//input.setTextSize(maxSize);
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(maxSize);
input.setFilters(filters);//设置输入的字符数
结贴了!