动态edittext不会在Android应用中显示文字

时间:2017-04-10 04:11:21

标签: android android-edittext

按如下方式创建动态EditText

EditText myText = new EditText(this);
myText.setId(ctrlKey);
myText.setBackgroundResource(R.drawable.style_edittext);
myText.setClickable(true);
myText.setCursorVisible(true);

myText.setTextColor(Color.BLACK);
myText.setTextSize(12);
myText.setText("may i");    //pageField.getValue());
myText.setSelection(0);
myText.setCursorVisible(true);

if (pageField.getMultiline()) {
myText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
}
else
 myText.setSingleLine(true);
//myText.setEnabled(false);
pageLayout.setLayoutParams(ctrllp);
pageLayout.addView(myText, ctrllp);

Edittext已创建并在适当的位置显示,但我无法在Edittext中看到该文本,当我在其中尝试放置光标时,似乎已经存在文本Edittext(下面显示的光标位置和帮助字确认)。即使我在Edittext中输入的内容也不可见。

XML

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.topazsystems.pdoc.MainActivity">

<android.support.design.widget.AppBarLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:theme="@style/AppTheme.AppBarOverlay">        
   <include
            android:id="@+id/toolbar"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            layout="@layout/toolbar" />
</android.support.design.widget.AppBarLayout>
<com.topazsystems.pdoc.ZoomableViewGroup
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity = "center_horizontal|center_vertical"
    android:id="@+id/zoomLayout"

    xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="fill"
    android:id="@+id/RelLayout">
    <include layout="@layout/content_main" />
</RelativeLayout>
</com.topazsystems.pdoc.ZoomableViewGroup>
<include layout="@layout/fragment_navigation"/>
</android.support.design.widget.CoordinatorLayout>

在activity oncreate中我正在调用一个包含控件呈现代码的方法。

  pageLayout = (RelativeLayout) findViewById(com.topazsystems.pdoc.R.id.RelLayout);
 //to display page controls during appload
    pageControlsList = pdfRenderer.GetPageControls();
    if (pageControlsList != null) {
        if (pageControlsList.size() > 0) {
            generateControls();
            //fillDefaultDocControls();
            mfrg.showPage(pdfRenderer.getmCurrentPageNum(), true, this);
        }
    }

其中generatecontrols()包含edittext创建代码,mfrg是fragment的实例。

3 个答案:

答案 0 :(得分:0)

检查一次删除后台资源,如果它是罪魁祸首。所以删除以下行并检查文本是否可见。

 myText.setBackgroundResource(R.drawable.style_edittext);

答案 1 :(得分:0)

您在var device = RestService.For<IDevice>("http://localhost"); var dev = await device.GetDevice("15e2a691-06df-4741-b26e-87e1eecc6bd7", "Bearer OAUTH_TOKEN"); 中传递了错误的上下文,您需要传递EditText的父级上下文,如下面的代码。

在您的代码中,您将EditText添加到EditText

pageLayout

答案 2 :(得分:0)

这些答案都不适合我。经过详细研究后,我观察到文本区域看起来非常小,文本不可见。只需添加以下行即可解决问题。

 myText.setPadding(0,0,0,0);