0

ListViewオブジェクトに約2500個のアイテムのリストがあります。それらのアイテムのいくつかを表示したいのですが、グレー表示されています。グレー表示されていないアクティビティに対してアクティビティが起動します(私の場合、これはAlertDialogです)。たとえば、最初の500個のアイテムをアクティブにして通常の動作をさせたいのですが、他のアイテムはグレー表示されていて、クリックしても何も起こりません。

私が作成しようとしているのは、ListViewアプリの試用版です。これにより、ユーザーは、デモンストレーション目的でリスト内の一部のアイテムにのみアクセスできます。

これを行う最も簡単な方法は何でしょうか?互いに追加された2つのリスト(最初はアクティブで、2番目はアクティブではない)があるとしか考えられません。理想的には、(たとえば)3つおきのアイテムがアクティブで、他のアイテムはアクティブではないように、実際にインターデジタルリストを作成しますが、複雑すぎる場合は、同じリストで実行される2つの別々のグループを選びます。

4

1 に答える 1

0

使用しているアダプタを拡張し、次の簡単なチェックインを追加するだけですgetView()

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = super.getView(position, convertView, parent);

    if(position < 500) {
        view.setClickable(false);
        view.setEnabled(true);
    }
    else {
        view.setClickable(true);
        view.setEnabled(false);
    }

    return view;
}

私はあなたの簡単なチェックを行い(行が最初の500にある場合)、次にいくつかの特性を変更しました。

  • setEnabled()の場合、テキストは灰色になりますfalse
  • setClickable()trueこれにより、ListViewがTouchEventを受信できなくなる場合。

お役に立てば幸いです。

于 2012-09-06T00:08:54.177 に答える