Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 文本视图在单击之前不可见_Java_Android_Email_Textview - Fatal编程技术网

Java 文本视图在单击之前不可见

Java 文本视图在单击之前不可见,java,android,email,textview,Java,Android,Email,Textview,我必须根据应用程序从网络获取的信息生成布局。有时,它可能有电子邮件地址,我可能需要截断,如果他们太长的空间可用 我的问题是,我可以截断它们并使它们适合我需要的大小,但在单击它们之前,它们将不可见..: 以下是我的电子邮件文本视图代码: TextView noneText = new TextView(getActivity()); noneText.setWidth(width); noneText.setSingleLine(true); noneText.setTextSize(cell.g

我必须根据应用程序从网络获取的信息生成布局。有时,它可能有电子邮件地址,我可能需要截断,如果他们太长的空间可用

我的问题是,我可以截断它们并使它们适合我需要的大小,但在单击它们之前,它们将不可见..:

以下是我的电子邮件文本视图代码:

TextView noneText = new TextView(getActivity());
noneText.setWidth(width);
noneText.setSingleLine(true);
noneText.setTextSize(cell.getCSS().getTextSize() + 4);
noneText.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.NORMAL));
noneText.setText(cell.getText());
if(cell.getType() == AutoActionElement.AutoGridActionElementType.EML){
    // Email
    noneText.setAutoLinkMask(Linkify.EMAIL_ADDRESSES);
    noneText.setMovementMethod(LinkMovementMethod.getInstance());
}
if (displayedAutogrid.getColumn(cellNo).isTruncated()) {
    noneText.setEllipsize(TextUtils.TruncateAt.END);
    noneText.setLines(1);
}
noneText.setGravity(Gravity.CENTER_VERTICAL | cell.getCSS().getGravity());
noneText.setPadding(noneText.getPaddingLeft(), padding, noneText.getPaddingRight(), padding);
layout.addView(noneText);
谢谢

编辑它可以很好地处理电话号码。它们被截断并显示,但不显示电子邮件

编辑目前,我将更改我的方法,如果文本被截断,我将不让文本可点击,因为有一个电子邮件储存信息的详细视图。通过查看详细视图,电子邮件将完全显示。单击包含一些信息的布局(以及截断的电子邮件)将获得详细视图。
我仍然在寻找答案,不是为了在我的应用程序中使用,而是为了我的Android知识

您是否将此代码块放在onCreateView中?如果是,您可以尝试将其放在onCreate方法中。

这是由于应用程序主题,我认为您使用的是v7 compact。。。 尝试使用AppCompatTextView类或指定TextColor

我更喜欢从XML扩展简单的小部件,以保持应用程序主题,避免JAVA中UI的重复初始化代码

创建xml布局文件:无\u textview.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="@style/TextAppearance.AppCompat.Large"
    android:autoLink="all">
</TextView>

已尝试
noneText.bringToFront()?它在onCreateView中,但将其移动到onCreate只会显示任何内容。我明白你的意思,但我确实需要以编程方式创建新的TextView,因为同一列中的单元格可能具有不同的样式。。文本颜色变为蓝色,因为我将其设置为与电子邮件链接。您可以在代码上创建多个xml或使用AppCompatTextView而不是TextView,或者只需将textColor设置为您的TextView。。。
TextView noneText = (TextView) LayoutInflater.from(getActivity()).inflate(R.layout.none_textview ,layout,false);