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]);
}