我想EditText在Android中以编程方式管理框的高度和宽度.我试过edittext.setWidth(32);和edittext.setEms(50);,但两者都没有工作.请参阅下面的代码,因为我正在使用它EditText在Android中创建动态s.
private EditText createEditText()
{
final LayoutParams lparams = new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
final EditText edittext = new EditText(this);
edittext.setLayoutParams(lparams);
edittext.setWidth(32);
edittext.setEms(50);
return edittext;
}
Run Code Online (Sandbox Code Playgroud) 看起来下图中的EditText太宽了.我假设我以某种方式滥用了SDK,直到确信我没有想办法在两侧指定一些边距/填充像素EditText.

这个看起来更合适.

这是我的代码(创建第一个'Create Tag'对话框):
final Dao<Tag, Integer> tagDao = getHelper().getTagDao();
final EditText input = new EditText(this);
input.setSingleLine(true);
input.setHint(R.string.create_tag_dialog_hint);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(input);
builder.setTitle(getString(R.string.create_tag_dialog_title));
builder.setPositiveButton(
getString(R.string.create_tag_dialog_positive),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString().trim();
Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show();
Tag tag = new Tag(value);
try {
tagDao.create(tag);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
builder.setNegativeButton(
getString(R.string.create_tag_dialog_negative), null);
builder.show();
Run Code Online (Sandbox Code Playgroud)
对不起该帖子的长度,感谢任何有用的评论.
我的应用程序中有一个包含EditText字段的AlertDialog.此对话框需要以编程方式生成,并且应与当用户通过触摸EditTextPreference编辑文本时由Android自动显示的EditTextPreference对话框外观相匹配.这一切都有效,但以编程方式插入的EditText的大小太宽,与触摸时EditTextPreference显示的大小不匹配.以下两个图像显示了该问题.
使用setView()添加到AlertDialog时,EditText看起来像这样:
但应该看起来像这样:
以下是XML中负责EditTextPreference的XML代码:
<EditTextPreference
android:title="Enter Name"
android:key="name"
android:defaultValue=""
android:summary=""
android:inputType="textCapSentences|textMultiLine"
android:singleLine="false"
android:gravity="top|left"
android:lines="2"
android:minLines="1"
android:maxLines="2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
/>
Run Code Online (Sandbox Code Playgroud)
以及负责我的对话的Java代码:
AlertDialog.Builder alertDialog = new AlertDialog.Builder(mainActivity);
alertDialog.setTitle("Enter Date");
final EditText input = new EditText(mainActivity);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
input.setLayoutParams(lp);
input.setGravity(android.view.Gravity.TOP|android.view.Gravity.LEFT);
input.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES|InputType.TYPE_TEXT_FLAG_MULTI_LINE);
input.setLines(1);
input.setMaxLines(1);
input.setText(lastDateValue);
alertDialog.setView(input);
Run Code Online (Sandbox Code Playgroud)