setText() 不适用于膨胀布局

发布于 2024-12-17 16:05:12 字数 1535 浏览 2 评论 0原文

我正在尝试充气 LinearLayout 以在屏幕上构建自定义部分。

String txt = "testing";
LinearLayout rowLink = (LinearLayout)getLayoutInflater().inflate(R.layout.additional_link, null);
TextView tvCsAddLink = (TextView)findViewById(R.id.tvCsAddLink);                                       
tvCsAddLink.setText(txt);

// adding this inflated layout to an existing layout
myLinearLayout.addView(rowLink);

我的 additional_link.xml 的内容如下:

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/llCsAddLink"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/white_row"
    android:clickable="true"
    >        
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:src="@drawable/youtube_icon" />        
    <TextView
        android:id="@+id/tvCsAddLink"       
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"        
        android:paddingLeft="10px"
        android:paddingRight="20px"
        android:textSize="16dp"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_gravity="center_vertical" />
</LinearLayout>

我收到一个 NullPointerException

tvCsAddLink.setText(txt);

I'm trying to inflate a LinearLayout to build a customized section on my screen.

String txt = "testing";
LinearLayout rowLink = (LinearLayout)getLayoutInflater().inflate(R.layout.additional_link, null);
TextView tvCsAddLink = (TextView)findViewById(R.id.tvCsAddLink);                                       
tvCsAddLink.setText(txt);

// adding this inflated layout to an existing layout
myLinearLayout.addView(rowLink);

The content of my additional_link.xml is as follows:

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/llCsAddLink"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/white_row"
    android:clickable="true"
    >        
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:src="@drawable/youtube_icon" />        
    <TextView
        android:id="@+id/tvCsAddLink"       
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"        
        android:paddingLeft="10px"
        android:paddingRight="20px"
        android:textSize="16dp"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_gravity="center_vertical" />
</LinearLayout>

I'm getting a NullPointerException on the line:

tvCsAddLink.setText(txt);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

悲喜皆因你 2024-12-24 16:05:12

使用它从布局中获取 TextView。

TextView tvCsAddLink = (TextView)rowLink.findViewById(R.id.tvCsAddLink);                                       

Use this to get TextView from layout.

TextView tvCsAddLink = (TextView)rowLink.findViewById(R.id.tvCsAddLink);                                       
别理我 2024-12-24 16:05:12

您已在 linearLayout rowLink 上夸大了 XML,并且尝试从 Activity 的布局中查找 TextView > (通常是 main.xml ),因此您需要在布局 rowLink 上找到 textView ,如下所示:

TextView tvCsAddLink = (TextView)rowLink.findViewById(R.id.tvCsAddLink);  

you have inflated your XML on your linearLayout rowLink , and you try to find the TextView from the layout of your Activity ( usualy main.xml ) , so you need to find your textView on your layout rowLink like this :

TextView tvCsAddLink = (TextView)rowLink.findViewById(R.id.tvCsAddLink);  
野稚 2024-12-24 16:05:12

在膨胀的 LinearLayoutrowLink 上调用 findViewById(R.id.tvCsAddLink),现在您正在当前活动中搜索它。

Call findViewById(R.id.tvCsAddLink) on your inflated LinearLayoutrowLink, now you are searching it in the current activity.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文