0

リスト ビューとそのためのカスタム アダプターがあります。それはすべて完璧に機能しますが、条件が真の場合、クリックできないラベルのようなものを追加したいと思います。ただし、条件が true の場合は、通常のリスト項目も表示する必要があります。そして、これは私の問題です。ラベルを追加してから通常のアイテムを追加する方法がわかりません。

私は初心者で、いろいろ試しましたが、うまくいきませんでした。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView;
    if (position == 3){
        rowView = inflater.inflate(R.layout.event_date, parent, false);
        TextView date = (TextView) rowView.findViewById(R.id.event_date);
        // set text
    } else {
        rowView = inflater.inflate(R.layout.events_list, parent, false);
        TextView title = (TextView) rowView.findViewById(R.id.event_title);
        // set text
    }

    return rowView;
}
4

2 に答える 2

2

BaseAdapterには、オーバーライドできるisEnabled()というメソッドがあります。それを使用して、特定の位置がクリック可能かどうかを割り当てることができます。

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

また、 areAllItemsEnabled()を使用して、すべての項目が有効になっているわけではないことを宣言する必要があります。

@Override
public boolean areAllItemsEnabled() {
    return false;
}
于 2013-07-11T12:58:53.963 に答える
0

特定の条件が満たされたときにラベルをリストの横に表示する必要がある場合は、ページの XML でラベルを作成し、その表示を設定できます。

例えばLabel a = findViewById(R.id.labela); a.setVisibility(View.GONE);

これを、ラベルを制御するために作成した「ifステートメント」に入れて、必要な値を表示するようにリストビューを設定し、それに応じてクリック可能またはクリック不可にします。

lv.setEnabled(false);
于 2013-07-11T13:07:20.113 に答える