[英]Can access TextView but not LinearLayout declared in the same way
[英]Access to a TextView within a LinearLayout
对于我的Android应用程序,我必须定义一个包含三个空白TextView的特定布局。 接下来,我要修改这些TextView的内容,然后以编程方式将此LinearLayout追加到另一个LinearLayout。 我的问题是,当我尝试在内部Layout中引用TextView时,出现了NULL指针异常。
这是我的内部布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="3"
android:id="@+id/firstRowLinearLayout">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left"
android:textStyle="bold"
android:id="@+id/matchTextView"
android:background="#ffffff"
android:textColor="#000000" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:textStyle="bold"
android:id="@+id/resultTextView"
android:background="#ffffff"
android:textColor="#000000" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:textStyle="bold"
android:id="@+id/quoteTextView"
android:background="#ffffff"
android:textColor="#000000" />
</LinearLayout>
这是我尝试访问此布局内的TextView的代码:
LinearLayout couponLinearLayout = (LinearLayout) findViewById(R.id.couponLinearLayout); // outer layout
LinearLayout test = (LinearLayout) findViewById (R.id.firstRowLinearLayout); // layout to be added to the outer one
TextView first_field = (TextView) test.findViewById(R.id.matchTextView);
(R.id.resultTextView);
first_field.setText("TEST");
couponLinearLayout.addView(test);
正如我所说,使用此代码时,我定义TextView时得到了NULL指针异常。 希望你能帮助我!
您的代码应该是这样的,您忘了夸大内部布局
LinearLayout couponLinearLayout = (LinearLayout) findViewById(R.id.couponLinearLayout); // outer layout
LayoutInflater inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View convertView = inflater.inflate(R.layout.inner_layout,
null);
LinearLayout test = (LinearLayout) convertView.findViewById (R.id.firstRowLinearLayout); // layout to be added to the outer one
TextView first_field = (TextView) convertView.findViewById(R.id.matchTextView);
first_field.setText("TEST");
couponLinearLayout.addView(test);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.