0

我做了一个类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);在 Main Activity 中使用然后 Toast 或打印 ShowWeight 我得到 'null' 。setContentDescription(),getContentDescription()也不应该抛出错误,因为我在 ShowWeight 的 XML 标记中给出了默认的 contentDescription 。

4

1 回答 1

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();
于 2011-06-27T11:25:39.167 回答