2016-10-21 6 views
0

hallo alle ich nahm Kontakt in einem Listview Hier setzen will, ist mein Code:So stellen Sie den ausgewählten Kontakt in der Listenansicht ein?

TextView contactsDisplay; 
    Button pickContacts,Btn_sms,Btn_call; 
    final int CONTACT_PICK_REQUEST = 1000; 
ListView lst; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
Btn_sms=(Button) findViewById(R.id.for_sms); 
Btn_call=(Button)findViewById(R.id.for_call); 
     contactsDisplay = (TextView) findViewById(R.id.txt_selected_contacts); 
     pickContacts = (Button) findViewById(R.id.btn_pick_contacts); 
lst =(ListView)findViewById(R.id.list); 
     pickContacts.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent intentContactPick = new Intent(MainActivity.this,ContactsPickerActivity.class); 
       MainActivity.this.startActivityForResult(intentContactPick,CONTACT_PICK_REQUEST); 
      } 
     }); 
    } 

    @Override 
    public void onActivityResult(int requestCode,int resultCode,Intent data){ 
     super.onActivityResult(requestCode, resultCode, data); 

     if(requestCode == CONTACT_PICK_REQUEST && resultCode == RESULT_OK){ 

      ArrayList<Contact> selectedContacts = data.getParcelableArrayListExtra("SelectedContacts"); 

      String display=""; 
      for(int i=0;i<selectedContacts.size();i++){ 

       display += (i+1)+". "+selectedContacts.get(i).toString()+"\n"; 

      } 
      contactsDisplay.setText("Selected Contacts : \n\n"+display); 
     } 
    } 

Ich habe das mit einem TextView (ContactsDisplay), aber jetzt möchte ich mit Listview (lst) zu tun

Haben Sie einige Lösungen zu diesem Problem

+0

Was möchten Sie mit ListView nach empfangenem Kontakt erreichen? –

+0

ich möchte sie in listview speichern, damit ich sie in meiner App verwenden kann – Abhishek

Antwort

0

Bitte suchen Sie folgende Lösung.

package com.chayanchowdhurycontact; 
import android.app.Activity; 
import android.content.ContentResolver; 
import android.database.Cursor; 
import android.graphics.Bitmap; 
import android.net.Uri; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.provider.ContactsContract; 
import android.provider.MediaStore; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ListView; 
import android.widget.SearchView; 
import android.widget.Toast; 
import com.chayanchowdhurycontact.adapter.SelectUserAdapter; 
import com.chayanchowdhurycontact.getset.SelectUser; 

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 

public class MainActivity erstreckt Aktivität {

// ArrayList 
ArrayList<SelectUser> selectUsers; 
List<SelectUser> temp; 
// Contact List 
ListView listView; 
// Cursor to load contacts list 
Cursor phones, email; 

// Pop up 
ContentResolver resolver; 
SearchView search; 
SelectUserAdapter adapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    selectUsers = new ArrayList<SelectUser>(); 
    resolver = this.getContentResolver(); 
    listView = (ListView) findViewById(R.id.contacts_list); 

    phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC"); 
    LoadContact loadContact = new LoadContact(); 
    loadContact.execute(); 

    search = (SearchView) findViewById(R.id.searchView); 

    //*** setOnQueryTextListener *** 
    search.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 

     @Override 
     public boolean onQueryTextSubmit(String query) { 
      // TODO Auto-generated method stub 

      return false; 
     } 

     @Override 
     public boolean onQueryTextChange(String newText) { 
      // TODO Auto-generated method stub 
      adapter.filter(newText); 
      return false; 
     } 
    }); 
} 

// Load data on background 
class LoadContact extends AsyncTask<Void, Void, Void> { 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 

    } 

    @Override 
    protected Void doInBackground(Void... voids) { 
     // Get Contact list from Phone 

     if (phones != null) { 
      Log.e("count", "" + phones.getCount()); 
      if (phones.getCount() == 0) { 
       Toast.makeText(MainActivity.this, "No contacts in your contact list.", Toast.LENGTH_LONG).show(); 
      } 

      while (phones.moveToNext()) { 
       Bitmap bit_thumb = null; 
       String id = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID)); 
       String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
       String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
       String EmailAddr = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA2)); 
       String image_thumb = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_THUMBNAIL_URI)); 
       try { 
        if (image_thumb != null) { 
         bit_thumb = MediaStore.Images.Media.getBitmap(resolver, Uri.parse(image_thumb)); 
        } else { 
         Log.e("No Image Thumb", "--------------"); 
        } 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

       SelectUser selectUser = new SelectUser(); 
       selectUser.setThumb(bit_thumb); 
       selectUser.setName(name); 
       selectUser.setPhone(phoneNumber); 
       selectUser.setEmail(id); 
       selectUser.setCheckedBox(false); 
       selectUsers.add(selectUser); 
      } 
     } else { 
      Log.e("Cursor close 1", "----------------"); 
     } 
     //phones.close(); 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void aVoid) { 
     super.onPostExecute(aVoid); 
     adapter = new SelectUserAdapter(selectUsers, MainActivity.this); 
     listView.setAdapter(adapter); 

     // Select item on listclick 
     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

       Log.e("search", "here---------------- listener"); 

       SelectUser data = selectUsers.get(i); 
      } 
     }); 

     listView.setFastScrollEnabled(true); 
    } 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
    phones.close(); 
} 

}

adapter class:-- 

public class SelectUserAdapter extends BaseAdapter { 

public List<SelectUser> _data; 
private ArrayList<SelectUser> arraylist; 
Context _c; 
ViewHolder v; 
RoundImage roundedImage; 

public SelectUserAdapter(List<SelectUser> selectUsers, Context context) { 
    _data = selectUsers; 
    _c = context; 
    this.arraylist = new ArrayList<SelectUser>(); 
    this.arraylist.addAll(_data); 
} 

@Override 
public int getCount() { 
    return _data.size(); 
} 

@Override 
public Object getItem(int i) { 
    return _data.get(i); 
} 

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

@TargetApi(Build.VERSION_CODES.LOLLIPOP) 
@Override 
public View getView(int i, View convertView, ViewGroup viewGroup) { 
    View view = convertView; 
    if (view == null) { 
     LayoutInflater li = (LayoutInflater) _c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view = li.inflate(R.layout.contact_info, null); 
     Log.e("Inside", "here--------------------------- In view1"); 
    } else { 
     view = convertView; 
     Log.e("Inside", "here--------------------------- In view2"); 
    } 

    v = new ViewHolder(); 

    v.title = (TextView) view.findViewById(R.id.name); 
    v.check = (CheckBox) view.findViewById(R.id.check); 
    v.phone = (TextView) view.findViewById(R.id.no); 
    v.imageView = (ImageView) view.findViewById(R.id.pic); 

    final SelectUser data = (SelectUser) _data.get(i); 
    v.title.setText(data.getName()); 
    v.check.setChecked(data.getCheckedBox()); 
    v.phone.setText(data.getPhone()); 

    // Set image if exists 
    try { 

     if (data.getThumb() != null) { 
      v.imageView.setImageBitmap(data.getThumb()); 
     } else { 
      v.imageView.setImageResource(R.drawable.image); 
     } 
     // Seting round image 
     Bitmap bm = BitmapFactory.decodeResource(view.getResources(), R.drawable.image); // Load default image 
     roundedImage = new RoundImage(bm); 
     v.imageView.setImageDrawable(roundedImage); 
    } catch (OutOfMemoryError e) { 
     // Add default picture 
     v.imageView.setImageDrawable(this._c.getDrawable(R.drawable.image)); 
     e.printStackTrace(); 
    } 

    Log.e("Image Thumb", "--------------" + data.getThumb()); 

    /*// Set check box listener android 
    v.check.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      CheckBox checkBox = (CheckBox) view; 
      if (checkBox.isChecked()) { 
       data.setCheckedBox(true); 
       } else { 
       data.setCheckedBox(false); 
      } 
     } 
    });*/ 

    view.setTag(data); 
    return view; 
} 

// Filter Class 
public void filter(String charText) { 
    charText = charText.toLowerCase(Locale.getDefault()); 
    _data.clear(); 
    if (charText.length() == 0) { 
     _data.addAll(arraylist); 
    } else { 
     for (SelectUser wp : arraylist) { 
      if (wp.getName().toLowerCase(Locale.getDefault()) 
        .contains(charText)) { 
       _data.add(wp); 
      } 
     } 
    } 
    notifyDataSetChanged(); 
} 
static class ViewHolder { 
    ImageView imageView; 
    TextView title, phone; 
    CheckBox check; 
} 

}

Model class:-- 
public class SelectUser { 
String name; 

public Bitmap getThumb() { 
    return thumb; 
} 

public void setThumb(Bitmap thumb) { 
    this.thumb = thumb; 
} 

Bitmap thumb; 

public String getPhone() { 
    return phone; 
} 

public void setPhone(String phone) { 
    this.phone = phone; 
} 

String phone; 

public Boolean getCheckedBox() { 
    return checkedBox; 
} 

public void setCheckedBox(Boolean checkedBox) { 
    this.checkedBox = checkedBox; 
} 

Boolean checkedBox = false; 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

String email; 

public String getEmail() { 
    return email; 
} 

public void setEmail(String email) { 
    this.email = email; 
} 

}

Verwandte Themen