Структура моего проекта следующая:
Основная деятельность с навигационным ящиком, в котором я выбираю фрагмент новостей, это действительно просмотрщик, с двумя фрагментами внутри, новости с видом переработчика, где он Появляются все фрагменты новостей и избранного, в которых показаны те, которые помечены как избранные.
У меня также есть детальное действие, которое начинается с намерения во фрагменте новостей, когда я нажимаю на одно из них, внутри этого последнего действия, которое я у меня есть кнопка, которая «представляет» новости в списке избранных, несмотря на это, когда я перехожу к фрагменту избранного, нового там не появляется, и мне нужно перейти на другую страницу ящика навигации, чтобы заставить фрагмент уничтожить, и когда я назад к фрагменту, он уже появляется.
Так что я не уверен, где должна быть расположена функция, чтобы уведомить адаптер списка избранных для мгновенного отображения новостей.
Спасибо.
Это код:
Подробности деятельности:
public class DetailActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
//pongo la toolbar
// Toolbar toolbar = findViewById(R.id.toolbar);
// setSupportActionBar(toolbar);
//
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
ImageView im= findViewById(R.id.detail_image);
.......
FloatingActionButton f_fav=findViewById(R.id.fab);
Button see_=findViewById(R.id.see_also_button);
final Articles a= (Articles) getIntent().getSerializableExtra("Article");
Picasso.get().load(a.getUrlToImage()).into(im);//pongo la imagen
......
f_share.setOnClickListener(new View.OnClickListener() {//listener to share button
........
see_.setOnClickListener(new View.OnClickListener() {//listener to see button
.......
}
});
f_fav.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Putfav().execute(a);
//**Here is where I should call a method that update the adapter**
}
});
}
Новый Адаптер s:
private void asignarCampos(final Articles article) {
title.setText(article.getTitle());//set title
desc.setText(article.getDescription());//set content
Picasso.get().load(article.getUrlToImage()).into(image);
//hacer cosas cuando pete la URL
//por ejemplo porner una imagen standar de noticia
// .load(...).placeholder(ruta de imagen)
card.setOnClickListener(new View.OnClickListener() {//Listener to go to detail activity
@Override
public void onClick(View v) {
Intent detail=new Intent(itemView.getContext(), DetailActivity.class);
detail.putExtra("Article",article);
itemView.getContext().startActivity(detail);
}
});
Фрагмент избранного
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
Log.i(TAG,"OncreateView");
View v=inflater.inflate(R.layout.fragment_favorites, container, false);
Recycler=v.findViewById(R.id.RecyclerFav);//le meto la lista
Recycler.setLayoutManager(new LinearLayoutManager(getContext()));
new loadfavs().execute();//load the favorites news from an Asynctask inner class that check the database
return v;
}