我创建了一个扩展ShowWeight
的类LinearLayout
,它有两个自定义视图作为内部类。我通过main.xml中的XML标记使用此类:
<org.test.ShowWeight android:id="@+id/sw"..................../>
ShowWeight类中有两个公共变量,其变化值需要在主活动中捕获,主活动使用main.xml
作为视图。
我该怎么做? 我在主要活动中试过这个:
ShowWeight sw=(ShowWeight)this.findViewById(R.id.sw);
Log.d("test",sw.getContentDescription().toString());
,这在showWeight类中:
this.setContentDescription(/*required value */);
这导致了NullPointerException
。
会欣赏一些建议(数据库,静态变量,而非选项)
不幸的是,我不允许发布任何代码,如果我看起来很模糊,我道歉,但我确信ShowWeight
类没有改变可能导致问题的任何内容。
我通过XML标记添加到main.xml视图的ShowWeight类看起来很好并且运行正常。
当我在主活动中使用ShowWeight sw=(ShowWeight)this.findViewById(R.id.sw);
然后Toast或打印ShowWeight时,我得到'null'。此外,setContentDescription(),getContentDescription()
不应该抛出错误,因为我在ShowWeight的XML标记中给出了默认的contentDescription。
答案 0 :(得分:0)
发布您的ShowWeight课程将有助于我们提供更多帮助。 假设你有这样的课程。
public class ShowWeight extends LinearLayout {
private Object myObject;
public ShowWeight(Context context, AttributeSet attrs)
{
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.header, this);
}
public Object getMyObject()
{
return myObject;
}
}
并在你的MainActivity.java
ShowWeight sw=(ShowWeight)this.findViewById(R.id.sw);
sw.getMyObject();