0

sqlite データベースからオファーのある国のリストを取得しています。

これらのオファーを国別に表示する ListView に表示したいと考えています。例: インドに 5 つのオファーがあるとします。次のように表示されます。インド、次に 5 つのオファーすべて。次に、他の国とそのオファーなど..

データはチェック ボックス付きで表示されます。チェックボックスがオフの場合、項目が強調表示されます。コードは次のとおりです

_arrayAdapterActiveCards = new ArrayAdapter<Card>(this, R.layout.active_card_list_item, _activeUserCards)
{
    LayoutInflater layout_inflater = LayoutInflater.from(getApplicationContext());

    @Override
    public Card getItem(int position)
        {
            return _activeUserCards.get(position);
        }

    @Override
    public long getItemId(int position)
        {
            return position;
        }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent)
        {

            Card select_card = getItem(position);

            if (convertView == null)
                {
                    convertView = layout_inflater.inflate(R.layout.active_card_list_item, null);
                }

            String selected_card = select_card.getBankName() + " - " + select_card.getCardName().replaceAll("\\s+$", "");

            final ViewHolder holder = new ViewHolder();
            holder.card_name_view = (TextView) convertView.findViewById(R.id.active_card_name_view);
            holder.card_name_view.setText(selected_card);
            holder._checkBox = (CheckBox) convertView.findViewById(R.id.active_card_checkbox);
            holder._checkBox // here implement check box facility
            .setOnClickListener(new OnClickListener()
                {

                    @Override
                    public void onClick(View v)
                        {
                            String savedItems = null;

                            if (!_listViewForActiveCards.isItemChecked(position))
                                {
                                    Log.d(TAG, "Value of position  = " + position);
                                }

                            _arrayAdapterActiveCards.notifyDataSetChanged();
                        }

                });

            return convertView;
        }

    class ViewHolder
        {
            TextView card_name_view;
            CheckBox _checkBox;
        }
};

_arrayAdapterActiveCards.setNotifyOnChange(true);
_listViewForActiveCards.setAdapter(_arrayAdapterActiveCards);
for (int i = 0; i < _noOfCountry; i++)
{
    final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    _fragmentLayoutActiveCard = (LinearLayout) inflater.inflate(R.layout.fragment_layout, null);
    _fragmentLayoutActiveCard.setId(i);
    _lLayout = (LinearLayout) findViewById(R.id.countryAndCardListLayout);
    _countryText[i] = new TextView(this);
    _countryText[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
    _countryText[i].setText(_countryName[i].toUpperCase());
    _countryText[i].setTextColor(Color.BLACK);
    _lLayout.addView(_countryText[i]);
    _lLayout.addView(_fragmentLayoutActiveCard);
    _listViewForActiveCards = (ListView) findViewById(R.id.fragmentCardList);
    getCardFromDataBaseTestMethodActiveCard(_countryName[i]);
}
4

2 に答える 2

0

これを試してください: http://jsharkey.org/blog/2008/08/18/separating-lists-with-headers-in-android-09/

** コードは適切な形式で提供してください。正確かつ迅速に答えを得るのに役立ちます。

于 2012-09-24T05:21:25.577 に答える
0

これが私があなたの質問を理解した方法です。各国とそのオファーを 1 つずつ表示します (データベースから取得した情報)。このためには、カスタム配列アダプターを実装し、それに応じて表示する必要がある場合があります。

于 2012-09-24T06:15:49.797 に答える