this is my main activity edittext
edtsearch.addTextChangedListener(searchTextWatcher);
make funcetion
private TextWatcher searchTextWatcher = new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if(phonebookadp != null){
String myst = s.toString();
if(myst.equalsIgnoreCase(s.toString())){
phonebookadp.getFilter().filter(s.toString());
}
}
}
public void beforeTextChanged(CharSequence s, int start, int count,int after) {}
public void afterTextChanged(Editable s) {}
};
This is my adapter
public class ImportPhonebook_Adapter extends BaseAdapter implements Filterable{
private LayoutInflater l_Inflater;
Filter myFilter;
public ImportPhonebook_Adapter(Context context) {
l_Inflater = LayoutInflater.from(context);
}
public int getCount() {
// TODO Auto-generated method stub
return contactname.size();
}
public Object getItem(int position) {
return contactname.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.contactlist, null);
holder = new ViewHolder();
holder.fname = (TextView) convertView.findViewById(R.id.contactlist);
holder.lname = (TextView) convertView.findViewById(R.id.contactlistlname);
holder.textnum = (TextView)convertView.findViewById(R.id.textnumber);
holder.imguser = (ImageView)convertView.findViewById(R.id.imageViewuser);
holder.chkbx = (CheckBox)convertView.findViewById(R.id.checkBox1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.chkbx.setVisibility(View.GONE);
try{
if(contactname != null){
ContactSetGet contasetget = new ContactSetGet();
contasetget = contactname.get(position);
cont_id = contasetget.getmyId();
Log.i(tag, "my cont id...."+cont_id);
strmob_no = contasetget.getMainnumber();
if(!TextUtils.isEmpty(strmob_no)){
holder.textnum.setText(strmob_no);
}else{
holder.textnum.setVisibility(View.INVISIBLE);
}
strfname = contasetget.getFname();
strgivenname = contasetget.getLname();
if(!TextUtils.isEmpty(strfname)){
holder.fname.setText(contasetget.getFname());
}else{
holder.fname.setVisibility(View.GONE);
}
if(!TextUtils.isEmpty(strgivenname)){
holder.lname.setText(contasetget.getLname());
}else{
holder.lname.setVisibility(View.GONE);
}
String photoId = contasetget.getPhoto();
Log.i("Phonebook_Adapter", "image ....."+photoId);
if(photoId != null){
if(photoId.equalsIgnoreCase("00")){
holder.imguser.setImageResource(R.drawable.ic_launcher);
}else if(photoId.contains("mnt")){
Bitmap bitmap = BitmapFactory.decodeFile(photoId);
holder.imguser.setImageBitmap(bitmap);
}
else{
photoUri = ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI, Long.parseLong(photoId));
holder.imguser.setImageURI(photoUri);
}
}else{
holder.imguser.setImageResource(R.drawable.ic_contact_picture_holo_light);
}
}
}catch(Exception e){
e.printStackTrace();
}
return convertView;
}
@Override
public android.widget.Filter getFilter() {
// TODO Auto-generated method stub
return new android.widget.Filter() {
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
// TODO Auto-generated method stub
contactname = (ArrayList<ContactSetGet>) results.values;
ImportPhonebook_Adapter.this.notifyDataSetChanged();
}
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@SuppressLint({ "DefaultLocale", "NewApi" })
@Override
protected FilterResults performFiltering(CharSequence prefix) {
// TODO Auto-generated method stub
FilterResults results = new FilterResults();
List<ContactSetGet> i = new ArrayList<ContactSetGet>();
String myna = prefix.toString();
if (prefix!= null && prefix.toString().length() > 0) {
for (int index = 0; index < contactname.size(); index++) {
ContactSetGet si = contactname.get(index);
Log.i("----------------si.getFirstName()---------","."+si.getFname());
Log.i("----------------prefix---------","."+prefix.toString());
//String number
myna = si.getFname().toLowerCase();
if(myna.startsWith(prefix.toString())){
Log.i(tag, "insert name..."+si.getFname());
i.add(si);
}
}
results.values = i;
results.count = i.size();
}
else{
synchronized (contactname){
results.values = mycontnamesetget;
results.count = mycontnamesetget.size();
}
}
return results;
}
};
}
}
contactname is my main listview
List<ContactSetGet> mycontnamesetget;
mycontnamesetget = new ArrayList<ContactSetGet>();
fill this list same where main list fiil up
mycontnamesetget = contactname;
edtsearch.addTextChangedListener(searchTextWatcher);
make funcetion
private TextWatcher searchTextWatcher = new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if(phonebookadp != null){
String myst = s.toString();
if(myst.equalsIgnoreCase(s.toString())){
phonebookadp.getFilter().filter(s.toString());
}
}
}
public void beforeTextChanged(CharSequence s, int start, int count,int after) {}
public void afterTextChanged(Editable s) {}
};
This is my adapter
public class ImportPhonebook_Adapter extends BaseAdapter implements Filterable{
private LayoutInflater l_Inflater;
Filter myFilter;
public ImportPhonebook_Adapter(Context context) {
l_Inflater = LayoutInflater.from(context);
}
public int getCount() {
// TODO Auto-generated method stub
return contactname.size();
}
public Object getItem(int position) {
return contactname.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.contactlist, null);
holder = new ViewHolder();
holder.fname = (TextView) convertView.findViewById(R.id.contactlist);
holder.lname = (TextView) convertView.findViewById(R.id.contactlistlname);
holder.textnum = (TextView)convertView.findViewById(R.id.textnumber);
holder.imguser = (ImageView)convertView.findViewById(R.id.imageViewuser);
holder.chkbx = (CheckBox)convertView.findViewById(R.id.checkBox1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.chkbx.setVisibility(View.GONE);
try{
if(contactname != null){
ContactSetGet contasetget = new ContactSetGet();
contasetget = contactname.get(position);
cont_id = contasetget.getmyId();
Log.i(tag, "my cont id...."+cont_id);
strmob_no = contasetget.getMainnumber();
if(!TextUtils.isEmpty(strmob_no)){
holder.textnum.setText(strmob_no);
}else{
holder.textnum.setVisibility(View.INVISIBLE);
}
strfname = contasetget.getFname();
strgivenname = contasetget.getLname();
if(!TextUtils.isEmpty(strfname)){
holder.fname.setText(contasetget.getFname());
}else{
holder.fname.setVisibility(View.GONE);
}
if(!TextUtils.isEmpty(strgivenname)){
holder.lname.setText(contasetget.getLname());
}else{
holder.lname.setVisibility(View.GONE);
}
String photoId = contasetget.getPhoto();
Log.i("Phonebook_Adapter", "image ....."+photoId);
if(photoId != null){
if(photoId.equalsIgnoreCase("00")){
holder.imguser.setImageResource(R.drawable.ic_launcher);
}else if(photoId.contains("mnt")){
Bitmap bitmap = BitmapFactory.decodeFile(photoId);
holder.imguser.setImageBitmap(bitmap);
}
else{
photoUri = ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI, Long.parseLong(photoId));
holder.imguser.setImageURI(photoUri);
}
}else{
holder.imguser.setImageResource(R.drawable.ic_contact_picture_holo_light);
}
}
}catch(Exception e){
e.printStackTrace();
}
return convertView;
}
@Override
public android.widget.Filter getFilter() {
// TODO Auto-generated method stub
return new android.widget.Filter() {
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
// TODO Auto-generated method stub
contactname = (ArrayList<ContactSetGet>) results.values;
ImportPhonebook_Adapter.this.notifyDataSetChanged();
}
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@SuppressLint({ "DefaultLocale", "NewApi" })
@Override
protected FilterResults performFiltering(CharSequence prefix) {
// TODO Auto-generated method stub
FilterResults results = new FilterResults();
List<ContactSetGet> i = new ArrayList<ContactSetGet>();
String myna = prefix.toString();
if (prefix!= null && prefix.toString().length() > 0) {
for (int index = 0; index < contactname.size(); index++) {
ContactSetGet si = contactname.get(index);
Log.i("----------------si.getFirstName()---------","."+si.getFname());
Log.i("----------------prefix---------","."+prefix.toString());
//String number
myna = si.getFname().toLowerCase();
if(myna.startsWith(prefix.toString())){
Log.i(tag, "insert name..."+si.getFname());
i.add(si);
}
}
results.values = i;
results.count = i.size();
}
else{
synchronized (contactname){
results.values = mycontnamesetget;
results.count = mycontnamesetget.size();
}
}
return results;
}
};
}
}
contactname is my main listview
List<ContactSetGet> mycontnamesetget;
mycontnamesetget = new ArrayList<ContactSetGet>();
fill this list same where main list fiil up
mycontnamesetget = contactname;
No comments:
Post a Comment
Comments