java - 如何通过Java处理TextInputLayout

标签 java android textinputlayout

我想创建一个用于路线规划目的的具有 2 个状态的接口(interface) 1 - 输入起始地址和目标地址 2 - 通过 GPS 定位服务做同样的事情

我已经通过 XML 文件制作了内容布局,但由于我需要在它们之间动态切换,所以我尝试通过 Java 按钮事件设置相同的内容。但每当我尝试通过 Java 设置带有 EditText 的 TextInputLayout 并尝试在我的 Android 模拟器(Pixel 2 API lvl 28)上编译和启动它时,它都会给我一个 java.lang.IllegalArgumentError ,并显示消息“The style on”此组件要求您的应用程序主题为 Theme.AppCompat(或其后代)。

    inputTop = new android.support.design.widget.TextInputLayout(getApplicationContext());
    inputTop.setLayoutParams(new ConstraintLayout.LayoutParams(Constraints.LayoutParams.FILL_PARENT - 120, (int) convertDpToPx(getApplicationContext(), 45)));
    inputTop.setX(convertDpToPx(getApplicationContext(), 174));
    inputTop.setY(convertDpToPx(getApplicationContext(), 60));

    inputTopInner = new EditText(getApplicationContext());
    inputTopInner.setLayoutParams(new ConstraintLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
    inputTopInner.setGravity(Gravity.CENTER);
    inputTopInner.setInputType(InputType.TYPE_CLASS_TEXT);
    inputTopInner.setTextColor(Color.rgb(151,151,151));
    inputTopInner.setTextSize(12);
    inputTopInner.setHint("Standort");
    inputTopInner.setEms(10);
    inputTop.addView(inputTopInner);

    layout.addView(viewTop);
    layout.addView(inputTop);

有人知道如何让它像输入到 XML 文件时那样运行吗?

最佳答案

这就是我们为项目所做的:

我们将 Parent 保留为 LinearLayout 并在该布局中添加 View

 LiearLayout parentView = findViewById(R.id.parentView);

            TextInputLayout emailTextInputLayout = new TextInputLayout(this, null, R.style.Widget_MaterialComponents_TextInputLayout_OutlinedBox);

            emailTextInputLayout.setHint("Please Enter Email Address");
            emailTextInputLayout.setBoxBackgroundMode(TextInputLayout.BOX_BACKGROUND_OUTLINE);
            emailTextInputLayout.setBoxCornerRadii(5, 5, 5, 5);
            TextInputEditText edtEmail = new TextInputEditText(emailTextInputLayout.getContext());
            emailTextInputLayout.addView(edtEmail);

            parentView.addView(emailTextInputLayout);


            TextInputLayout passTextInputLayout = new TextInputLayout(this, null, R.style.Widget_MaterialComponents_TextInputLayout_OutlinedBox);

            passTextInputLayout.setHint("Please Enter Password");
            passTextInputLayout.setBoxBackgroundMode(TextInputLayout.BOX_BACKGROUND_OUTLINE);
            passTextInputLayout.setBoxCornerRadii(5, 5, 5, 5);
            TextInputEditText edtPass = new TextInputEditText(passTextInputLayout.getContext());
            passTextInputLayout.addView(edtPass);

            parentView.addView(passTextInputLayout);

关于java - 如何通过Java处理TextInputLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56424653/

相关文章:

android - TextInputLayout 错误文本有一些额外的空间,但另一个项目甚至没有相同的样式

android - 膨胀类 android.support.design.widget.TextInputLayout 时出错

java - 如何将后端传入的数据存储到周期元素类型的数组对象中

java - 使用 Quicksort 的内置 Java 数组/链表排序算法

java - 如何在循环末尾连接数组

android - 如何在 objective-c 中创建像 Android 一样的 Edittext (TextInputLayout)?

java - android 监视器在更新到 android 7 后抛出 E/HW-JPEG-DEC

iphone - 应用程序中的条形码识别

android - 是否可以将平台签名的应用程序安装到用户空间?

jQuery Mobile 和 PhoneGap deviceReady() 未触发