Created
April 12, 2018 13:14
-
-
Save eltonjhony/8d0bef3f9ec10b163b6b98d7de2ac83f to your computer and use it in GitHub Desktop.
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.gmail.vtc.vlado.news; | |
import android.content.Intent; | |
import android.net.Uri; | |
import android.support.annotation.NonNull; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.TextView; | |
import java.text.DateFormat; | |
import java.text.ParseException; | |
import java.text.SimpleDateFormat; | |
import java.util.Date; | |
import java.util.List; | |
public class NewsAdapter extends RecyclerView.Adapter<NewsAdapter.ViewHolder> { | |
private List<News> newsList; | |
public NewsAdapter(NewsActivity newsActivity, List<News> newsList) { | |
this.newsList = newsList; | |
} | |
@Override | |
public void onBindViewHolder(@NonNull ViewHolder holder, int position) { | |
final News news = newsList.get(position); | |
holder.tvTitle.setText(news.getTitle()); | |
DateFormat df = new SimpleDateFormat("YYY-MM-dd"); | |
Date dateAndTimeObject = null; | |
try { | |
dateAndTimeObject = df.parse(news.getDateAndTime()); | |
} catch (ParseException e) { | |
e.printStackTrace(); | |
} | |
String formattedDate = formatDate(dateAndTimeObject); | |
holder.tvDate.setText(formattedDate); | |
String formattedTime = formatTime(dateAndTimeObject); | |
holder.tvTime.setText(formattedTime); | |
holder.tvSection.setText(news.getSection()); | |
holder.tvAuthor.setText(news.getAuthor()); | |
holder.itemView.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
Intent openWebIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(news.getWebLink())); | |
v.getContext().startActivity(openWebIntent); | |
} | |
}); | |
} | |
@Override | |
public int getItemCount() { | |
return newsList.size(); | |
} | |
@Override | |
public long getItemId(int position) { | |
return super.getItemId(position); | |
} | |
@NonNull | |
@Override | |
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { | |
View view = LayoutInflater.from(parent.getContext()).inflate | |
(R.layout.item_row, parent, false); | |
return new ViewHolder(view); | |
} | |
public void addAll(List<News> data) { | |
newsList.addAll(data); | |
} | |
public void clear() { | |
if (newsList != null) { | |
newsList.clear(); | |
} | |
} | |
public class ViewHolder extends RecyclerView.ViewHolder { | |
TextView tvTitle, tvDate, tvTime, tvSection, tvAuthor; | |
public ViewHolder(View itemView) { | |
super(itemView); | |
tvTitle = itemView.findViewById(R.id.tv_title); | |
tvDate = itemView.findViewById(R.id.tv_date); | |
tvTime = itemView.findViewById(R.id.tv_time); | |
tvSection = itemView.findViewById(R.id.tv_section); | |
tvAuthor = itemView.findViewById(R.id.tv_author); | |
} | |
} | |
private String formatDate(Date dateObject) { | |
SimpleDateFormat dateFormat = new SimpleDateFormat("dd LLL, yyyy"); | |
return dateFormat.format(dateObject); | |
} | |
private String formatTime(Date dateObject) { | |
SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm"); | |
return timeFormat.format(dateObject); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment