Добавление текстового поля / отступа внутри alerttdialog - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь добавить поле для моего текстового представления в alerttdialog

AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); 
builder.setTitle(notificationList.get(position).getNotificationTitle());
final TextView tv = new TextView(getContext());
tv.setInputType( InputType.TYPE_CLASS_NUMBER );   
tv.setText(notificationList.get(position).getNotificationMessage());
builder.setView(tv);

Я пытаюсь изменить свой сценарий на этот

AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
                builder.setTitle(notificationList.get(position).getNotificationTitle());
                LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
                params.setMargins(10,10,10,10);
                final TextView tv = new TextView(getContext());
                tv.setLayoutParams(params);
                tv.setInputType( InputType.TYPE_CLASS_NUMBER );
                tv.setText(notificationList.get(position).getNotificationMessage());
                builder.setView(tv);

, но все равно ничего не помогу, так как я могу добавить поле для моего textview?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Попробуйте это.Когда вы добавляете textView, вам не нужно tv.setInputType(InputType.TYPE_CLASS_NUMBER);

    AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    builder.setTitle((notificationList.get(position).getNotificationTitle());
    final TextView tv = new TextView(mContext);
    FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    layoutParams.height = 100;
    layoutParams.width = FrameLayout.MarginLayoutParams.MATCH_PARENT;
    layoutParams.setMargins(50, 20, 50, 10);
    tv.setText(notificationList.get(position).getNotificationMessage());
    tv.setGravity(Gravity.CENTER);
    builder.setView(tv);
    builder.create().show();
    tv.setLayoutParams(layoutParams);

. Вы можете изменить маржу в layoutParams.setMargins(int left, int top, int right, int bottom) по своему усмотрению.mContext - это контекст действия, в котором вы используете диалоговое окно оповещения.Поэтому убедитесь, что у активности должна быть тема Theme.AppCompat.Или вы можете изменить стиль для приложения.

например:

public class MainActivity extends AppCompatActivity {

    private Context mContext;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContext = this;
    }
}

Теперь вы можете использовать mContext в качестве контекста в текущей деятельности или последующих фрагментах в деятельности.

0 голосов
/ 25 февраля 2019

Пожалуйста, попробуйте ниже код

AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); 
builder.setTitle(notificationList.get(position).getNotificationTitle());
final LinearLayout ll = new LinearLayout(getContext());
ll.removeAllViews();
final TextView tv = new TextView(getContext());
tv.setInputType( InputType.TYPE_CLASS_NUMBER );   
tv.setText(notificationList.get(position).getNotificationMessage());


LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
                params.setMargins(10,10,10,10);
 tv.setLayoutParams(params);
ll.addView(tv);
builder.setView(ll);
...