Я пытаюсь создать оповещения Dialog окно как леденец, все идет хорошо, но я застрял в одном разделе случай EditTextAndroid: Установка Маржа для редактирования текста в AlertDialog Box
Я хочу EditText с подчеркиванием и маржа слева и справа с 20dp.For подчеркивание Я пробовал setBackground(), и его работающий штраф.
Но есть проблема, которая setBackground() не будет работать API уровень ниже 16.
Для setMargin Я попытался
final EditText input = new EditText(MainActivity.this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(30,0,30,0);
input.setLayoutParams(lp);
input.setGravity(View.TEXT_ALIGNMENT_GRAVITY);
input.setBackground(getResources().getDrawable(R.drawable.edit_text_line));
builder.setView(input);
Но Edit Text, используя всю ширину родительского.
Полный код
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Message");
builder.setMessage("Do you want to\n"+""+"exit from app");
final EditText input = new EditText(MainActivity.this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(30,0,30,0);
input.setLayoutParams(lp);
input.setGravity(View.TEXT_ALIGNMENT_GRAVITY);
input.setBackground(getResources().getDrawable(R.drawable.edit_text_line)); //call reequires api 16 and above
builder.setView(input);
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "You exit from app " + input.getText().toString(),
Toast.LENGTH_LONG).show();
}
});
AlertDialog alert = builder.create();
alert.show();
Button nbutton = alert.getButton(DialogInterface.BUTTON_NEGATIVE);
nbutton.setTextColor(Color.parseColor("#7e7e7e"));
Button pbutton = alert.getButton(DialogInterface.BUTTON_POSITIVE);
pbutton.setTextColor(Color.parseColor("#109c8f"));
Есть ли способ, чтобы установить фон для EditText, которые работают ниже API 16 и setMargin влево и вправо для EditText.
Один из способов для маржинальной вещь может быть добавить линейное расположение и набор левый и правый отступы для этой схемы. поместите ваш edittext внутри этой линейной очереди, а не помещайте ее непосредственно в диалог. –
попробуйте использовать ViewGroup.MarginLayoutParams .. !!! –
@ Binil S см. Мой ответ ниже. –