Created
March 31, 2017 01:23
-
-
Save humazed/4cb0b2907ed6adb6576a388a791467d6 to your computer and use it in GitHub Desktop.
answer to this question http://stackoverflow.com/questions/43130218/change-imageview-visibility-from-certain-rows-in-recyclerview
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package com.example.huma.test001.recycler_view_stackoverflow; | |
| import android.os.Bundle; | |
| import android.support.v7.app.AppCompatActivity; | |
| import android.support.v7.widget.LinearLayoutManager; | |
| import android.support.v7.widget.RecyclerView; | |
| import android.view.LayoutInflater; | |
| import android.view.View; | |
| import android.view.ViewGroup; | |
| import android.widget.ImageView; | |
| import android.widget.TextView; | |
| import com.example.huma.test001.R; | |
| import java.util.Arrays; | |
| import java.util.List; | |
| public class RecyclerViewActivity extends AppCompatActivity { | |
| private RecyclerView recycler; | |
| @Override | |
| protected void onCreate(Bundle savedInstanceState) { | |
| super.onCreate(savedInstanceState); | |
| setContentView(R.layout.activity_recycler_view); | |
| initView(); | |
| List<Item> items = Arrays.asList( | |
| new Item("1", false), | |
| new Item("2", false), | |
| new Item("3", false), | |
| new Item("4", false), | |
| new Item("5", false), | |
| new Item("6", false), | |
| new Item("7", false), | |
| new Item("8", false), | |
| new Item("9", false), | |
| new Item("10", false), | |
| new Item("11", false), | |
| new Item("12", false), | |
| new Item("13", false), | |
| new Item("14", false), | |
| new Item("15", false), | |
| new Item("16", false), | |
| new Item("17", false) | |
| ); | |
| recycler.setAdapter(new ContactsAdapter(items)); | |
| recycler.setLayoutManager(new LinearLayoutManager(this)); | |
| } | |
| class ContactsAdapter extends RecyclerView.Adapter<ContactsAdapter.ViewHolder> { | |
| private List<Item> mItems; | |
| public ContactsAdapter(List<Item> items) { | |
| mItems = items; | |
| } | |
| @Override | |
| public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
| return new ViewHolder(LayoutInflater.from( | |
| parent.getContext()).inflate(R.layout.row_recycler, parent, false)); | |
| } | |
| @Override | |
| public void onBindViewHolder(ViewHolder holder, int position) { | |
| holder.bind(position); | |
| } | |
| @Override | |
| public int getItemCount() { | |
| return mItems.size(); | |
| } | |
| class ViewHolder extends RecyclerView.ViewHolder { | |
| TextView mTextView; | |
| ImageView mImageView; | |
| ViewHolder(View itemView) { | |
| super(itemView); | |
| mTextView = (TextView) itemView.findViewById(R.id.textView); | |
| mImageView = (ImageView) itemView.findViewById(R.id.imageView); | |
| } | |
| void bind(int position) { | |
| final Item item = mItems.get(position); | |
| mTextView.setText(item.getText()); | |
| itemView.setOnClickListener(new View.OnClickListener() { | |
| @Override | |
| public void onClick(View v) { | |
| for (Item item1 : mItems) { | |
| item1.setImageVisible(false); | |
| } | |
| item.setImageVisible(true); | |
| notifyDataSetChanged(); | |
| } | |
| }); | |
| if (item.isImageVisible) mImageView.setVisibility(View.VISIBLE); | |
| else mImageView.setVisibility(View.INVISIBLE); | |
| } | |
| } | |
| } | |
| class Item { | |
| private String text; | |
| private boolean isImageVisible; | |
| public Item(String text, boolean isImageVisible) { | |
| this.setText(text); | |
| this.setImageVisible(isImageVisible); | |
| } | |
| public String getText() { | |
| return text; | |
| } | |
| public void setText(String text) { | |
| this.text = text; | |
| } | |
| public boolean isImageVisible() { | |
| return isImageVisible; | |
| } | |
| public void setImageVisible(boolean imageVisible) { | |
| isImageVisible = imageVisible; | |
| } | |
| } | |
| private void initView() { | |
| recycler = (RecyclerView) findViewById(R.id.recycler); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment