0

ListViewから取得したデータから入力していますDatabase。をデータで埋めるためCustomAdapterに拡張するを使用しています。の各行には 2と 1が含まれます。今、私がやりたいことは、ユーザーがテキストを入力すると、J で始まるすべての連絡先が表示されるようにすることです。BaseAdapterListViewListViewTextViewCheckBoxEditTextActivityJListView

MYCUSTOMADAPTER のコード

public class MyCustomAdapter extends BaseAdapter {

Context mContext;
private LayoutInflater mInflater;
SparseBooleanArray mSparseBooleanArray;
private ArrayList<String> mData = new ArrayList<String>();
private ArrayList<String> mNumber = new ArrayList<String>();

public MyCustomAdapter(Context mContext) {
    mInflater = (LayoutInflater) mContext
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    mSparseBooleanArray = new SparseBooleanArray();
}

public ArrayList<String> getCheckedItems() {
    ArrayList<String> mTempArry = new ArrayList<String>();
    for (int i = 0; i < mData.size(); i++) {
        if (mSparseBooleanArray.get(i)) {
            //mTempArry.add(mData.get(i));
            mTempArry.add(mNumber.get(i));
        }
    }
    return mTempArry;
}

public int getCount() {
    return this.mData.size();
}

public void addItem(String paramString1, String paramString2) {
    this.mData.add(paramString1);
    this.mNumber.add(paramString2);
    notifyDataSetChanged();
}

public Object getItem(int paramInt) {
    return (String) this.mData.get(paramInt);
}

public long getItemId(int paramInt) {
    return paramInt;
}

public View getView(final int paramInt, View paramView,
        ViewGroup paramViewGroup) {
    if (paramView == null) {
        paramView = mInflater.inflate(R.layout.multiplecontactview, null);
    }
    TextView txtName = (TextView) paramView.findViewById(R.id.txtContactName);
    TextView txtNumber = (TextView) paramView.findViewById(R.id.txtContactNumber);
    CheckBox mCheckBox = (CheckBox) paramView.findViewById(R.id.checkBox1);
    mCheckBox.setTag(paramInt);
    mCheckBox.setChecked(mSparseBooleanArray.get(paramInt));
    mCheckBox.setOnCheckedChangeListener(mCheckedChangeListener);
    txtName.setTextColor(Color.BLACK);
    txtNumber.setTextColor(Color.BLACK);
    for (int i = 0; i < mData.size(); i++) {
        txtName.setText(mData.get(paramInt).toString());
        txtNumber.setText(mNumber.get(paramInt).toString());
    }
    return paramView;
}

OnCheckedChangeListener mCheckedChangeListener = new OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView,
            boolean isChecked) {
        mSparseBooleanArray.put((Integer) buttonView.getTag(), isChecked);
    }
};

public static class ViewHolder {
    public CheckBox cb;
    public TextView nameView;
    public TextView numberView;
}

}

ONCREATE LISTVIEW() でデータを入力するためのコード

ArrayList<Contact> contacts = db.getAllContacts();
        for (Contact cn : contacts) {
            mAdapter.addItem(cn.getName(), cn.getPhoneNumber());
        }
        mAdapter.notifyDataSetChanged();
        mListView.setAdapter(mAdapter);
4

1 に答える 1

0

少し前に作成したアプリにこれを実装する必要がありました。オープンソースなので、コードを見ることができます。これに使いSearchViewました。

https://github.com/royale1223/HwaSettings

于 2012-11-28T15:47:18.930 に答える