Skip to content

Instantly share code, notes, and snippets.

@biodunalfet
Created December 11, 2016 08:17
Show Gist options
  • Save biodunalfet/95a68ec0a9e10c4cf13a722d0b08e58f to your computer and use it in GitHub Desktop.
Save biodunalfet/95a68ec0a9e10c4cf13a722d0b08e58f to your computer and use it in GitHub Desktop.
See the shareButton part. Line 135.
package com.example.sep.loveartlearnart;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
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.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import org.parceler.Parcels;
import java.util.ArrayList;
/**
* Created by Eni on 2016-12-04.
*/
public class CardFragment extends Fragment {
ArrayList<ArtModel> listitems = new ArrayList<>();
RecyclerView MyRecyclerView;
String[] art;
String Art[];
int Images[] = {R.drawable.after_leger,R.drawable.mouth_15,R.drawable.mgodoyi,R.drawable.revival_meeting,R.drawable.the_value_of_pictures};
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Art = getResources().getStringArray(R.array.art_works);
initializeList();
getActivity().setTitle("Love Art.Learn Art");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_card, container, false);
MyRecyclerView = (RecyclerView) view.findViewById(R.id.cardView);
MyRecyclerView.setHasFixedSize(true);
LinearLayoutManager MyLayoutManager = new LinearLayoutManager(getActivity());
MyLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
if (listitems.size() > 0 & MyRecyclerView != null) {
MyRecyclerView.setAdapter(new MyAdapter(listitems));
}
MyRecyclerView.setLayoutManager(MyLayoutManager);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> {
private ArrayList<ArtModel> list;
public MyAdapter(ArrayList<ArtModel> Data) {
list = Data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent,int viewType) {
// creates a new view
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recycle_items, parent, false);
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
holder.titleTextView.setText(list.get(position).getCardName());
holder.coverImageView.setImageResource(list.get(position).getImageResourceId());
holder.coverImageView.setTag(list.get(position).getImageResourceId());
holder.likeImageView.setTag(R.drawable.ic_like);
/**
* Added an onclick listener to the ImageView
* NB: You need to add "android:clickable = "true"" to the imageView in the layout file.
* If you don't it won't respond to clicks.
*
* 1. I got the selected art model from the List list (wierd name)
* 2. Sent it as a Parcelable in the intent
* 3. Fired the intent.
*/
holder.coverImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ArtModel selected = list.get(holder.getAdapterPosition());
Intent intent = new Intent(getActivity(), FullScreenImage.class);
intent.putExtra("selected_art", Parcels.wrap(selected));
startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
}
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView titleTextView;
public ImageView coverImageView;
public ImageView likeImageView;
public Button shareButton;
public MyViewHolder(View v) {
super(v);
titleTextView = (TextView) v.findViewById(R.id.titleTextView);
coverImageView = (ImageView) v.findViewById(R.id.coverImageView);
likeImageView = (ImageView) v.findViewById(R.id.likeImageView);
shareButton = (Button) v.findViewById(R.id.share_button);
shareButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int pos = getAdapterPosition();
int share_drawable = Images[pos];
String _ImageFile = "android.resource://" + getResources().
getResourceName(share_drawable).replace(":", "/");
Uri imageUri = Uri.parse(_ImageFile);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(Intent.createChooser(intent, "Share"));
}
});
likeImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int id = (int)likeImageView.getTag();
if( id == R.drawable.ic_like){
likeImageView.setTag(R.drawable.ic_liked);
likeImageView.setImageResource(R.drawable.ic_liked);
Toast.makeText(getActivity(),titleTextView.getText()+" added to favourites",Toast.LENGTH_SHORT).show();
}else{
likeImageView.setTag(R.drawable.ic_like);
likeImageView.setImageResource(R.drawable.ic_like);
Toast.makeText(getActivity(),titleTextView.getText()+" removed from favourites",Toast.LENGTH_SHORT).show();
}
}
});
}
}
public void initializeList() {
listitems.clear();
for(int i =0;i<5;i++){
ArtModel item = new ArtModel();
item.setCardName(Art[i]);
item.setImageResourceId(Images[i]);
item.setIsfav(0);
item.setIsturned(0);
listitems.add(item);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment