Open Chamiko opened 6 years ago
public class PersonRecycleViewAdapter extends RecyclerView.Adapter { private ArrayList arrPerson; private Context context; private MyClick myClick;
public PersonRecycleViewAdapter(ArrayList<Person> arrPerson, Context context, MyClick myClick) { this.arrPerson = arrPerson; this.context = context; this.myClick = myClick; } public PersonRecycleViewAdapter(ArrayList<Person> arrPerson, Context context) { this.arrPerson = arrPerson; this.context = context; } @Override public PersonRecycleViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(context).inflate(R.layout.layout_item_grid, parent, false); return new ViewHolder(v); } @Override public void onBindViewHolder(PersonRecycleViewAdapter.ViewHolder holder, int position) { Person person = arrPerson.get(position); holder.img.setImageResource(person.getImage()); } @Override public int getItemCount() { return arrPerson.size(); } public class ViewHolder extends RecyclerView.ViewHolder { ImageView img; public ViewHolder(final View itemView) { super(itemView); img = itemView.findViewById(R.id.img_item); img.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { myClick.onItemClick(getAdapterPosition(), itemView); } }); img.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { myClick.onItemLongClick(getAdapterPosition(), itemView); return true; } }); } }
}
public interface MyClick { public void onItemClick(int position, View view); public void onItemLongClick(int position, View view); }
public class ShowActivity extends AppCompatActivity implements MyClick { private ImageView img; private TextView tvName, tvPhone; private RecyclerView gvPerson; private ArrayList arrPerson; private PersonRecycleViewAdapter adapter;
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_show); initViews(); } private void initViews() { img = (ImageView) findViewById(R.id.img_person); tvName = (TextView) findViewById(R.id.tv_name); tvPhone = (TextView) findViewById(R.id.tv_phone); gvPerson = (RecyclerView) findViewById(R.id.gv_person); Intent intent = getIntent(); arrPerson = new ArrayList<>(); if(intent != null){ int position = intent.getExtras().getInt("index"); arrPerson = (ArrayList<Person>) intent.getSerializableExtra("list"); Person person = arrPerson.get(position); img.setImageResource(person.getImage()); tvName.setText(person.getName()); tvPhone.setText(person.getPhone()); } adapter = new PersonRecycleViewAdapter(arrPerson, ShowActivity.this, this); LinearLayoutManager layoutManager= new LinearLayoutManager(ShowActivity.this, LinearLayoutManager.HORIZONTAL, false); gvPerson.setLayoutManager(layoutManager); gvPerson.setAdapter(adapter); } @Override public void onItemClick(int position, View view) { img.setImageResource(arrPerson.get(position).getImage()); tvName.setText(arrPerson.get(position).getName()); tvPhone.setText(arrPerson.get(position).getPhone()); } @Override public void onItemLongClick(int position, View view) { Toast.makeText(this, arrPerson.get(position).getName(), Toast.LENGTH_SHORT).show(); }
}___ public class MainActivity extends AppCompatActivity { private ArrayList display; private ListView lvPerson; private ArrayList arrPerson; private PersonAdapter adapter;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); display = new ArrayList<>(); display.add("list"); display.add("grid"); lvPerson = (ListView) findViewById(R.id.lv_person); arrPerson = new ArrayList<>(); addArray(); adapter = new PersonAdapter(arrPerson, this); lvPerson.setAdapter(adapter); lvPerson.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent(MainActivity.this, ShowActivity.class); Bundle bundle = new Bundle(); bundle.putInt("index", position); bundle.putSerializable("list", arrPerson); intent.putExtras(bundle); startActivity(intent); } }); }
public class PersonRecycleViewAdapter extends RecyclerView.Adapter {
private ArrayList arrPerson;
private Context context;
private MyClick myClick;
}
public interface MyClick { public void onItemClick(int position, View view); public void onItemLongClick(int position, View view); }
public class ShowActivity extends AppCompatActivity implements MyClick { private ImageView img; private TextView tvName, tvPhone; private RecyclerView gvPerson; private ArrayList arrPerson;
private PersonRecycleViewAdapter adapter;
}___ public class MainActivity extends AppCompatActivity { private ArrayList display;
private ListView lvPerson;
private ArrayList arrPerson;
private PersonAdapter adapter;