I need a help to pass tab title to my detail activity on click item recyclerview. then i want to show that title as actionbar title
this my tab with recyclerview :
and after i click the item on cardview they will show detail activity and im going to show tabtile on actionbar title :
so the title is based on tab (categories) that contain a recylerview.
for information , i use a pager adapter to show title, and i use adapter with my recycler view. so i should pass the title to adapter right?
mainactivity (show tab and cardview) code:
class PagerAdapter extends FragmentPagerAdapter {
String tabTitles[] = new String[] { "Terbaru","Pilihan", "Prediksi", "Inggris", "Spanyol","Italy","Jerman","Prancis","Indonesia"};
Context context;
public PagerAdapter(FragmentManager fm, Context context) {
super(fm);
this.context = context;
}
@Override
public int getCount() {
return tabTitles.length;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new BlankFragment();
case 1:
return new EditorFragment();
case 2:
return new PrediksiFragment();
case 3:
return new InggrisFragment();
case 4:
return new SpanyolFragment();
case 5:
return new ItalyFragment();
case 6:
return new JermanFragment();
case 7:
return new PrancisFragment();
case 8:
return new IndonesiaFragment(); }
return null;
}
@Override
public CharSequence getPageTitle(int position) {
// Generate title based on item position
return tabTitles[position];
}
public View getTabView(int position) {
View tab = LayoutInflater.from(MainActivity.this).inflate(R.layout.custom_tab, null);
TextView tv = (TextView) tab.findViewById(R.id.custom_text);
tv.setText(tabTitles[position]);
return tab;
}
}
my adapter with onclick cardview to detail activity:
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
mContext = parent.getContext();
// create a new view
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.card_item, parent, false);
// set the view's size, margins, paddings and layout parameters
MyViewHolder vh = new MyViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(MyAdapter.MyViewHolder holder, final int position) {
Glide.with(mContext).load(String.valueOf(coba.get(position).getBetterFeaturedImage().getMediaDetails().getSizes().getMedium().getSourceUrl()))
.thumbnail(0.8f)
.override(220,220)
.crossFade()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(holder.mImgPost);
holder.mTextView.setText(Html.fromHtml(String.valueOf(coba.get(position).getTitle().getRendered())));
// holder.mDetView.setText(Html.fromHtml(String.valueOf(coba.get(position).getContent().getRendered())));
// holder.mDetView.setText(String.valueOf(coba.get(position).getSlug()));
Locale locale= new Locale("id","ID");
SimpleDateFormat sourceFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
SimpleDateFormat destFormat = new SimpleDateFormat("dd-MMM-yyyy",locale); //here 'a' for AM/PM
Date date = null;
try {
date = sourceFormat.parse(String.valueOf(coba.get(position).getDate()));
} catch (ParseException e) {
e.printStackTrace();
}
final String formattedDate = destFormat.format(date);
holder.mVerView.setText(formattedDate);
holder.mCardView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent intent = new Intent(v.getContext(),DetailBerita.class);
intent.putExtra("Gambar",String.valueOf(coba.get(position).getBetterFeaturedImage().getMediaDetails().getSizes().getMedium().getSourceUrl()));
intent.putExtra("Content",String.valueOf(coba.get(position).getContent().getRendered()));
intent.putExtra("Judul",String.valueOf(coba.get(position).getTitle().getRendered()));
intent.putExtra("Tanggal",formattedDate);
intent.putExtra("Link",String.valueOf(coba.get(position).getLink()));
intent.putExtra("Tags",String.valueOf(coba.get(position).getTags()));
v.getContext().startActivity(intent);
System.out.println("Clicked");
}
});
}
my sample frament to load recycler view:
public EditorFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
loadJSON();
}
private void loadJSON(){
final ProgressDialog loading = ProgressDialog.show(getActivity(),"Memuat Berita","Harap tunggu..",false,false);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://www.sumberbola.com/wp-json/wp/")
.addConverterFactory(GsonConverterFactory.create())
.build();
RequestSumbol request = retrofit.create(RequestSumbol.class);
Call<List<Coba>> call = request.getPostDet();
call.enqueue(new Callback<List<Coba>>() {
@Override
public void onResponse(Call<List<Coba>> call, Response<List<Coba>> response) {
try {
List<Coba> jsonResponse = response.body();
data= new ArrayList<>();
data.addAll(jsonResponse);
adapter = new MyAdapter(data);
adapter.notifyDataSetChanged();
recyclerView.setAdapter(adapter);
loading.dismiss();
// bar.setVisibility(View.GONE);
Log.i("HASIL", "onResponse: "+data);
}catch (Exception e) {
Log.d("onResponse", "There is an error");
e.printStackTrace();
}
}
@Override
public void onFailure(Call<List<Coba>> call, Throwable t) {
Log.d("Error",t.getMessage());
}
});
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_blank, container, false);
//avi = (AVLoadingIndicatorView) rootView.findViewById(R.id.barload);
recyclerView = (RecyclerView) rootView.findViewById(R.id.rv_recycler_view);
recyclerView.setHasFixedSize(true);
// loadJSON();
adapter = new MyAdapter(data);
recyclerView.setAdapter(adapter);
LinearLayoutManager llm = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(llm);
return rootView;
}
}
sorry for my bad english.