Somehow the name in the first ArrayList position (see Line 6) was 
overwritten with that in the second (see Line 13). Can anyone offer a 
reason as to what might be happening?

Refer to LogCat section for the numbers:

- Lines 2 and 3 show that the cursor has accessed the DB.

- Lines 4 thru 9 show that the names are retrieved from the DB and passed 
to ArrayLists.

- Lines 10 through 14 show the petNameList contents (see A) passed to the 
adapter (see B).

- Lines 15 through 18 show petNameList contents passed from MainActivity 
(see C).

- Lines 22 through 27 show that the first position of the ArrayList holds 
"qwerty".

- Lines 31 through 36 show that the second position of the ArrayList holds 
"qwerty".

I will keep experimenting to see if I can find out what happens and post it 
if I find the reason.

**LogCat:**

    1. !------MainActivity: Starts here-----!
    2. DB has: 2 rows
    3. cursor has: 2 rows
    4. The following should be the same:  
    5. name from cursor is: fert
    6. petNameList[0] is: fert
    7. The following should be the same:  
    8. name from cursor is: qwerty
    9. petNameList[1] is: qwerty
    10. petNameList is: [com.example.jbiss.petminder.PetName@ea7cc11, 
com.example.jbiss.petminder.PetName@3c54176]
    11. petNameList count is: 2
    12. petNameList elements passed to mAdapter:  
    13. petNameList[0] passed to the adapter constructor is: qwerty
    14. petNameList[1] passed to the adapter constructor is: qwerty

    15. made it to: SelectNameAdapter constructor
    16. items is: [com.example.jbiss.petminder.PetName@ea7cc11, 
com.example.jbiss.petminder.PetName@3c54176]
    17. ArrayList[0] passed to the adapter constructor is: qwerty
    18. ArrayList[1] passed to the adapter constructor is: qwerty

    19. made it to: onCreateViewHolder
    20. made it to: ViewHolder
    21. made it to: onBindViewHolder
    22. position in ArrayList is: 0
    23. mItems[0] (pointer) is: com.example.jbiss.petminder.PetName@ea7cc11
    24. pNm (pointer) is): com.example.jbiss.petminder.PetName@ea7cc11
    25. pNm (String ) is: qwerty
    26. NOTE: item should equal mItems[0]
    27. onBindViewHolder passed: item.getPetName() qwerty to ViewHolder
    28. made it to: onCreateViewHolder

    29. made it to: ViewHolder

    30. made it to: onBindViewHolder
    31. position in ArrayList is: 1
    32. mItems[1] (pointer) is: com.example.jbiss.petminder.PetName@3c54176
    33. pNm (pointer) is): com.example.jbiss.petminder.PetName@3c54176
    34. pNm (String ) is: qwerty
    35. NOTE: item should equal mItems[1]
    36. onBindViewHolder passed: item.getPetName() qwerty to ViewHolder


**The relevant code in MainActivity:**

        Log.d("!------MainActivity", "Starts here-----!");

        long numItems = mDbHelper.getPetCount();
        Log.d("DB has", String.valueOf(numItems) + " rows");
        if (numItems != 0) {
            cursor = mDbHelper.getPetNames();
            numItems = cursor.getCount();
            Log.d("cursor has", String.valueOf(numItems) + " rows");
            cursor.moveToFirst();

A)

            for (int i = 0; i < numItems; i++) {
                PetName name = new PetName(cursor.getString(PET_NAMES));
                Log.d("The following should be the same", " ");
                Log.d("name from cursor is", name.getPetName());
                petNameList.add(name);
                //the following is for troubleshooting, it gets the 
currently added petname
                PN = petNameList.get(i);
                pName = PN.getPetName();
                Log.d("petNameList[" + i + "] is", pName);
                cursor.moveToNext();
            }
        } else{
            //otherwise, if no pet names exist int he DB, make the no pets 
found message visible
            msgTv.setText(R.string.no_pets);
            msgTv.setVisibility(View.VISIBLE);
        }

B)

        Log.d("petNameList is", String.valueOf(petNameList));
        num = petNameList.size();
        Log.d("petNameList count is", String.valueOf(num));
        Log.d("petNameList elements passed to mAdapter", " ");
        for(int j =0; j < num; j++){
            PN = petNameList.get(j);
            pName = PN.getPetName();
            Log.d("petNameList[" + j + "] passed to the adapter constructor 
is", pName);
        }
        //setup the adapter and apply it to the RecyclerView
        mAdapter = new SelectNameAdapter(this, petNameList);
        mRecyclerView.setAdapter(mAdapter);


**Adapter code:**

    private ArrayList<PetName> mItems;
    private Context mContext;

    public SelectNameAdapter(Context context, ArrayList<PetName> items) {
        Log.d("made it to", "SelectNameAdapter constructor");
        Log.d("items is", String.valueOf(items));
        PetName PN;
        String name;

C)

        int num = items.size();
        for(int j =0; j < num; j++){
            PN = items.get(j);
            name = PN.getPetName();
            Log.d("ArrayList[" + j + "] passed to the adapter constructor 
is", name);
        }
        this.mContext = context;
        this.mItems = items;
    }

    @Override
    public SelectNameAdapter.ViewHolder onCreateViewHolder(ViewGroup 
parent, int i) {
        Log.d("made it to", "onCreateViewHolder");
        LayoutInflater inflater = LayoutInflater.from(mContext);
        View itemView = inflater.inflate(R.layout.pet_info, parent, false);
        ViewHolder viewHolder = new ViewHolder(itemView);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(SelectNameAdapter.ViewHolder holder, int 
position) {
        Log.d("made it to", "onBindViewHolder");
        Log.d("position in ArrayList is", String.valueOf(position));
        Log.d("mItems[" + position + "] (pointer) is", 
String.valueOf(mItems.get(position)));
        PetName pNm = mItems.get(position);
        Log.d("pNm (pointer) is)", String.valueOf(pNm));
        String n = pNm.getPetName();
        Log.d("pNm (String ) is", n);
        Log.d("NOTE", "item should equal mItems[" + position + "]");
        holder.tvName.setText(pNm.getPetName());
        Log.d("onBindViewHolder passed ", "item.getPetName() " + 
pNm.getPetName() + " to ViewHolder");
    }

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

    public static class ViewHolder extends RecyclerView.ViewHolder {

        public TextView tvName;
        public ViewHolder(View itemView) {
            super(itemView);
            Log.d("made it to", "ViewHolder");
            tvName = (TextView) itemView.findViewById(R.id.petname);
        }
    }
    }

-- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
To post to this group, send email to android-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-developers/89eaa894-e324-487c-adae-f094a83e26c4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to