0

カスタム Adapter を使用した ListView があり、Vector を使用して TextView を作成します。たとえば、文字「a」を含む国のみを表示したいとします。これを行うための解決策が見つかりません。

ここに私のアダプターと私がそれをやろうとした方法があります

public class CountryAdapter extends BaseAdapter {
protected MainActivity main = new MainActivity();
private Context mContext;
protected Vector<Country> mVector;
protected SQLiteDatabase mDb;
Cursor cursor;
ImageView deleteIt;
View rowView;
public int pos;


public void setmContext(Context mContext) {
    this.mContext = mContext;
}

public CountryAdapter(Context mContext) {
    this.mContext = mContext;

    mVector = new Vector<Country>();

    CountryOpenHelper helper = new CountryOpenHelper(mContext);
    mDb = helper.getWritableDatabase();

    cursor = mDb.rawQuery("SELECT * FROM COUNTRIES", null);

    if (cursor.getCount() > 0) {

        cursor.moveToFirst();
    }
    do {
        Country country = new Country();
        country.setmCountryIndex(cursor.getInt(0));

        country.setmCountryName(cursor.getString(2));
        country.setmCountryTextSize(cursor.getInt(1));
        country.setmCountryColor(cursor.getInt(3));
        mVector.add(country);
        for (int i = 0; i < cursor.getCount(); i++){
            if (mVector.get(i).toString().contains("a") == false){
                mVector.remove(i);
            }
        }

    } while (cursor.moveToNext());

また、必要に応じて、CountryAdapter にもある GetView メソッドを次に示します。

public View getView(int position, View convertView, ViewGroup parent) {
    TextView tv;
    if(convertView == null){
        tv = new TextView(mContext);
    }else{
        tv = (TextView) convertView;
    }

    this.pos = position;

    tv.setText(mVector.get(position).getmCountryName());
    tv.setTextColor(mVector.get(position).getmCountryColor());
    tv.setTextSize(mVector.get(position).getmCountryTextSize());

    return tv;




}
4

1 に答える 1

1

方向を少し変更することをお勧めします。ビルトインSimpleCursorAdapterまたはカスタムを使用してCursorAdapterください。Cursorsを やその他のタイプの に変換CursorAdaptersするよりも効率的で回復力があります。また、フィルタリングするクラスへのアクセスも提供します。CursorVectorListFilterQueryProviderCursor

この基本的なチュートリアルを試してください。

于 2013-01-16T18:58:24.863 に答える