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

how to set height of edit text in dialog in android for multiple screen?

我正在显示带有编辑文本的对话框。我想问一下如何设置对话框的高度。我用过 et_input.setHeight(100);但这接受像素值 phone dependent.Is 有任何常见的方法可以实现这一点。

代码如下:

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;

}

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

在您应用的 dimens.xml 文件中定义维度。 dimens.xml 根据不同的设备大小会有所不同。阅读更多相关信息:Dimensions

完成此操作后,更改您的代码如下:

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