我有一个扩展View
的类,在该类中,在特定点,我想显示旁边有一个小图标的文本。
为了实现这一点,我创建了一个XML布局,如下所示,并在扩展View
的类中,我定义了布局,使其内容出现在屏幕上,但是应用程序崩溃时出现NullPointerException。
请让我知道如何解决。
Update_1 :
我在LayoutInflater
中初始化了onsizeChanged()
,如下所示,但是当我运行应用时,没有任何内容出现。
onSizechanged中的初始化:
void onsizechanged() {
Layoutinflater mlayoutinf = LayoutInflater.from(this.mcontext;
View mview = mLayoutInf.inflate(R.id.confMSG_Yes,null);
this.tv = (textview) mView.findViewById(R.id.confMSG_Yes)
}
ontouchevent(){
....
....
showconfirmation()
}
showconfirmation() {
this.tv.settext("some text");
}
xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/rL01_ConfMSG"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/confMSG_Header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/confMSG_Header"/>
</RelativeLayout>
<LinearLayout
android:id="@+id/rL02_ConfMSG"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/confMSG_Yes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableRight="@drawable/accept"/>
</LinearLayout>
Java文件
private void showConfirmation() {
// TODO Auto-generated method stubfin
TextView tv = (TextView) findViewById(R.id.confMSG_Yes);
tv.setText("some text");
}
答案 0 :(得分:1)
听起来你的观点不会让这种布局膨胀。 this.findViewById
基本上会搜索为this
视图夸大的布局。
您可能需要在视图的构造函数中添加如下所示的行(注意:inflate是View
类中的静态方法):
inflate( context, R.layout.view_name_of_your_layout_file, this );
答案 1 :(得分:0)
你从哪里打电话showConfirmation()
?在布局夸大之前,您可能会调用它。
初始化视图时,请从XML中对其进行充气并返回对视图的引用:
查看视图= inflate(getContext(),R.layout.layout_id,null);
然后获取对TextView的引用:
TextView tv = (TextView) view.findViewById(R.id.confMSG_Yes);