0

I've tried looking at various various various examples of trying to explain this (what I thought would be) simple concept.

I have a ListView that uses a BaseAdapter for displaying rows of information. I have a button called btnEdit (R.id.Fragment_Edit_Member_RoleButton) that I need to be able to do work after the button is clicked.

I already have this....

@Override
public View getView(int position, View convertView, ViewGroup parent) {


    Member m = memberItems.get(position);

    LayoutInflater mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

        convertView = mInflater.inflate(R.layout.fragment_forum_members_item, null);

    TextView lblMemberText = (TextView) convertView.findViewById(R.id.memberText);
    TextView lblMemberRole = (TextView) convertView.findViewById(R.id.memberRole);
    lblMemberRole.setText(m.getRole());
    lblMemberText.setText(m.getUsername());

    Button btnEdit = (Button) convertView.findViewById(R.id.Fragment_Edit_Member_RoleButton);
    btnEdit.setTag(position);

    btnEdit.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {



            int wantedPosition = (Integer) v.getTag();

    });

Now I thought that the wantedPosition would work for me, but apparently I'm suppose to do some math based off the actual visual position or something? This is where i'm getting lost.

I tried referencing to: Android: Access child views from a ListView but this page isn't making any sense to me. He is pointing to int firstPosition = listView.getFirstVisiblePosition() - listView.getHeaderViewsCount(); but I don't have the foggiest clue on how to reference my actual listView from within the BaseAdapter? it doesn't even make sense to me to even do this in the first place since the Adapter is being called from some other fragement that we would have no clue which fragment called it.

I really need to be able to pull the memberText and the memberRole out of the selected row that the button is located in. This is my goal.

Help is greatly appreciated

Community
  • 1
  • 1
eqiz
  • 1,521
  • 5
  • 29
  • 51

1 Answers1

0

I guess i was overthinking it. I just needed to do...

            View view = (View) v.getParent();

            TextView lblMemberText = (TextView) view.findViewById(R.id.memberText);
            TextView lblMemberRole = (TextView) view.findViewById(R.id.memberRole);
eqiz
  • 1,521
  • 5
  • 29
  • 51