0

内部クラスとして 2 つのカスタム ビューを持つクラスShowWeightを拡張します。LinearLayoutmain.xml の XML タグを使用して、このクラスを使用しています。

<org.test.ShowWeight  android:id="@+id/sw"..................../>

ShowWeight クラスには 2 つのパブリック変数があり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 クラスは正常に表示され、適切に機能します。

Main Activity で使用ShowWeight sw=(ShowWeight)this.findViewById(R.id.sw);してから Toast または Print 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 に答える