2016-10-16 7 views
0

リサイクラビューアに連絡先リストを配置します。連絡先リストには、連絡先イメージ、連絡先番号、連絡先名が必要です。私は3つのうちの後者が整理されているが、画像が連絡先の名前に割り当てられていないということがある。基本的には、連絡先リストやFacebookからその個人の連絡先に割り当てられた画像を持たせたいと思います。誰かが私が間違って行った場所を見てみることができます。前もって感謝します。あなたはこの私のリサイクル業者のビューアに連絡先の画像を追加します。

loadContact l = new loadContact(); 
holder.contactPic.setImageBitmap(l.contactPhoto); 

よう再度セットアップ同じ画像にしようとしているあなたのonBindViewHolder方法で

public class allContacts extends Fragment { 
RecyclerView r; 
ContactAdapter adapter; 
List <contactInfo> contactLists = new ArrayList<>(); 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_all_contacts, container, false); 
    r =(RecyclerView)view.findViewById(R.id.contactView); 
    loadContact contact = new loadContact(); 
    contact.execute(); 
    return view; 
} 


public class loadContact extends AsyncTask<Void, Void, ArrayList<contactInfo>> { 
    ProgressDialog pd; 
    ArrayList<contactInfo> contacts; 
    contactInfo contact; 
    String imnage; 
    Cursor phonesCursor; 
    Bitmap contactPhoto; 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pd = ProgressDialog.show(getActivity(), "Loading Contacts", "Please Wait"); 
    } 


    @Override 
    protected ArrayList<contactInfo> doInBackground(Void... params) { 
     ContentResolver contentResolver = getActivity().getContentResolver(); 
     Cursor cursor = contentResolver.query(Contacts.CONTENT_URI, null, null, null, CommonDataKinds.Phone.DISPLAY_NAME + " ASC"); 


     if (cursor.getCount() > 0) while (cursor.moveToNext()) { 

      int hasPhoneNumber = Integer.parseInt(cursor.getString(cursor.getColumnIndex(Contacts.HAS_PHONE_NUMBER))); 

      if (hasPhoneNumber > 0) { 
       String id = cursor.getString(cursor.getColumnIndex(Contacts._ID)); 
       String name = cursor.getString(cursor.getColumnIndex(Contacts.DISPLAY_NAME)); 

       contact = new contactInfo(); 
       contact.setName(name); 

       Cursor phoneCursor = contentResolver.query(
         CommonDataKinds.Phone.CONTENT_URI, null, CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[]{id}, null); 
       if (phoneCursor.moveToNext()) { 
        String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(CommonDataKinds.Phone.NUMBER)); 
        contact.setPhoneNumber(phoneNumber); 

        String contactId = cursor.getString(cursor.getColumnIndex(Contacts._ID)); 


        Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, Long.parseLong(contactId)); 
        InputStream input = Contacts.openContactPhotoInputStream(contentResolver, uri); 
        contactPhoto = BitmapFactory.decodeStream(input); 

       } 
       phoneCursor.close(); 


       Cursor emailCursor = contentResolver.query(
         CommonDataKinds.Email.CONTENT_URI, 
         null, 
         CommonDataKinds.Email.CONTACT_ID + " = ?", 
         new String[]{id}, null); 
       while (emailCursor.moveToNext()) { 
        String emailId = emailCursor.getString(emailCursor.getColumnIndex(CommonDataKinds.Email.DATA)); 
       } 
       contactLists.add(contact); 
      } 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(ArrayList<contactInfo> contacts) { 
     super.onPostExecute(contacts); 
     pd.cancel(); 
     ContactAdapter contactAdapter = new ContactAdapter(contactLists, getActivity().getApplicationContext()); 
     r.setLayoutManager(new LinearLayoutManager(getActivity())); 
     r.setAdapter(contactAdapter); 
    } 

} 

public class ContactAdapter extends RecyclerView.Adapter<ContactViewHolder> { 
    private List<contactInfo> contactLists; 
    private Context context; 
    Cursor cursor; 

    public ContactAdapter(List <contactInfo> contactLists , Context context) 
     this.contactLists = contactLists; 
     this.context = context; 
    } 

    @Override 
    public ContactViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View view = LayoutInflater.from(context).inflate(R.layout.contactviewer,null); 
     ContactViewHolder contactViewHolder = new ContactViewHolder(view); 
     return contactViewHolder; 
    } 

    @Override 
    public void onBindViewHolder(ContactViewHolder holder, int position) { 
     contactInfo contact = contactLists.get(position); 
     holder.contactName.setText(contact.getName()); 
     holder.contactNumber.setText(contact.getPhoneNumber()); 
     loadContact l = new loadContact(); 
     holder.contactPic.setImageBitmap(l.contactPhoto); 
    } 



    @Override 
    public int getItemCount() { 
     return contactLists.size(); 
    } 
} 

public static class ContactViewHolder extends RecyclerView.ViewHolder{ 

    ImageView contactPic; 
    TextView contactName; 
    TextView contactNumber; 

    public ContactViewHolder(View itemView) { 
     super(itemView); 
     contactPic = (ImageView) itemView.findViewById(R.id.imageView101); 
     contactName = (TextView) itemView.findViewById(R.id.Text101); 
     contactNumber = (TextView) itemView.findViewById(R.id.Text202); 
    } 
} 



} 

class contactInfo{ 
String phoneNumber; 
String Name; 
int image; 


public int getImage() { 
    return image; 
} 

public void setImage(int image) { 
    this.image = image; 
} 

public contactInfo(){ 
} 

public String getPhoneNumber() { 
    return phoneNumber; 
} 

public void setPhoneNumber(String phoneNumber) { 
    this.phoneNumber = phoneNumber; 
} 

public String getName() { 
    return Name; 
} 

public void setName(String name) { 
    Name = name; 
} 
} 

答えて

0

代わり

holder.contactPic.setImageBitmap(contact.getImage()); 
を設定してみてください
関連する問題