如何在android中为多个屏幕设置对话框中编辑文本的高度?

时间:2015-02-05 06:06:12

标签: android android-edittext android-alertdialog

我正在使用edittext显示对话框。我想问一下如何设置对话框的高度。我用过et_input.setHeight(100);但这接受像素中的值,这将取决于手机。是否有任何常见的方法来实现这一点。

以下是代码:

public String inputPopUp(Context context)
{
    inputBuilder=new AlertDialog.Builder(context);
    final EditText et_input=new EditText(context);
    et_input.setHint("Enter Description");
    et_input.setHeight(100);
    inputBuilder.setView(et_input);
    inputBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            mealDesc=et_input.getText().toString();
        }
    });
    inputBuilder.show();
    return mealDesc;

}

2 个答案:

答案 0 :(得分:1)

在app的dimens.xml文件中定义维度。 dimens.xml根据不同的设备大小而不同。详细了解:Dimensions

执行此操作后,请按以下方式更改您的代码:

et_input.setHeight(MainActivity.this.getResources().getDimensionPixelSize(R.dimen.activity_horizontal_margin));

答案 1 :(得分:0)

您可以使用将在xml文件中使用的Android默认值,如下所示:layout_height="?listPreferredItemHeight"然后它将自动适应屏幕大小。或者你可以在values-hdpi,values-mdpi,...中定义几个dimens.xml。你将添加一个像<dimen name="edittext_height">30dp</dimen>这样的键,并在每个文件夹中更改它的值。但第二种解决方案需要更多的工作,而且不是很稳定......