Created
December 11, 2016 08:17
-
-
Save biodunalfet/95a68ec0a9e10c4cf13a722d0b08e58f to your computer and use it in GitHub Desktop.
See the shareButton part. Line 135.
This file contains 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.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