Heisenberg.
Heisenberg.

Reputation: 47

Inflating views on listview item

I have a listview. What I've implemented in that listview is that when user clicks a list item a 2 button view is inflated to replace the content of that list item like this:

enter image description here

This works fine but what I want is when I click the second list item the first one should come back to its original layout. Currently, it is like this:

enter image description here

This is my code implemented in onClick method of listview:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                TextView planName = view.findViewById(R.id.planNameText);
                TextView planDate = view.findViewById(R.id.planDateText);
                ImageView planImage = view.findViewById(R.id.homePlanImageView);
                planName.setVisibility(View.INVISIBLE);
                planDate.setVisibility(View.INVISIBLE);
                planImage.setVisibility(View.INVISIBLE);
                RelativeLayout rl_inflate = (RelativeLayout)view.findViewById(R.id.rl_inflate);
                View child = getLayoutInflater().inflate(R.layout.inflate, null);
                rl_inflate.addView(child);

        }
    });

Thanks.

Upvotes: 0

Views: 114

Answers (1)

Mario ponce garcia
Mario ponce garcia

Reputation: 66

Maybe you need to initialice a boolean variable to check if is clicked or not and refresh all the views. I really recommend you to use a RecyclerView and use 2 viewHolders. If you want information about this check this. If you implement a recycler with 2 viewholder it will be easier than the way that you want to implement it, and you can use notifyDataSetChanged to refresh the recycler. Whatever, you will need anyways a boolean to check if is clicked or not.

Upvotes: 5

Related Questions