-1

リスト ビューに 20 個のアイテムがあるプロジェクトを 1 つ作成しました。そのうち 15 個のアイテムを購入しない限り無効にし、購入するとすぐにクリック可能になるようにしたいので、次のコードを試しました。

setListAdapter(new ArrayAdapter<String>(QuantitativeAptitude.this,
            R.layout.row, quantList){

        @Override
        public boolean isEnabled(int position) {
             ListView lv = getListView();
                for (int i = 5; i <=20; i++){
                    View v = lv.getChildAt(i);
                    v.setEnabled(false);
                }
            return super.isEnabled(position);
        }

    });

しかし、それは役に立ちません。代わりに、提案があればアプリケーションがクラッシュします.....

4

1 に答える 1

2

isEnabled メソッドをオーバーライドする必要があるかもしれません。そこで、有効かどうかの条件を指定できます。このメソッドは、コレクション内の各 listviewitem に対して呼び出されます。たとえば、次のようになります。

@Override
public boolean isEnabled(int position) {
    if(CONDITION_GOES_HERE){
        return false;
    }
    return true;
}

おそらく、はるかに優れた/簡単な方法がありますが、これが最初に思い浮かびます。

うまくいけば、これはあなたを助けるでしょう:)

于 2013-07-12T15:41:35.313 に答える