0

私はAndroid開発の初心者です。私は私の学校のプロジェクトのためにこのアプリに取り組んできました。このアプリは基本的に、家電製品のエネルギー消費コストを計算する計算機です。私の画面では、viewFlipperに家電製品のimageViewsがたくさんあるので、ユーザーは画像をナビゲートして、計算したい家電製品を選択できます。私の質問は、これらのimageViewsに効率的な方法で整数値(アプライアンスのワット数やその仕様など)を割り当てて、アプリが選択した画像に基づいてエネルギー消費量を計算できるようにする方法です。条件文を使用していますが、コーディングが多すぎるようで、40を超える画像ビューがあるためメモリを浪費します。

4

2 に答える 2

2

独自の目的でオブジェクトをビューに割り当てることができます

Double energy = Double.valueOf(123.44);
imageView.setTag(energy);
...
Double energy = (Double) imageView.getTag();

これは、子ビューへの参照を格納するためにViewGroupsで使用されるViewHolderパターンに似ています。

于 2012-04-26T19:41:10.060 に答える
2

ImageViewを拡張するクラスを作成することを検討してください。次に、オブジェクトをカスタムクラスに渡すことができます。たとえば、オブジェクト(すべてのエネルギー関連データを格納する)をカスタムImageViewクラスのコンストラクターに渡すことができます。例えば、

// The CustomView "IS-A" ImageView, so you can perform ImageView operations
// on your custom object. You can even choose to override ImageView methods.
public class CustomView extends ImageView {
    Object myObj;

    public CustomView(Context context, Object myObj) {
        super(context);
        this.myObj = myObj;
    }
}

または、ImageViewでsetTagを使用することもできます。

40個のImageViewを使用していますか?メモリ管理が適切に処理されない場合、OutOfMemoryErrorの問題が発生することが予想されます。気をつけて!

于 2012-04-26T19:42:50.160 に答える