从另一个Activity的RecyclerView返回时如何更新Activity的textview?

时间:2018-03-27 11:38:33

标签: android android-activity android-recyclerview

您好(首先请原谅我的英语,如果出现问题,这不是我的第一语言),我正在开发一个带有IMDB API的应用程序,以便及时了解您最喜欢的系列(没有链接或任何非法的内容)。

我将专注于问题所在的两个活动:第一个Activity,ActivitySerieJson包含一个回收的视图,其中包含卡片视图中的所有季节。每张卡片视图包含季节缩略图,季节编号和用户完成的视图百分比: ActivitySerieJson

第二个活动,ActivityTemporadaJSON包含另一个recyclerview,这个活动视图中填充了章节名称,缩略图和一个眼形按钮,按下时,标记在DB上看到的章节。问题是,当我返回上一个活动时,完成的视图百分比TextView没有被刷新。 ActivityTemporadaJSon

这是我的代码:

RecyclerAdapterTemporada

    public void bindPhoto(Temporada mtemporada, String idSerie, String tipo) {
        temporada = mtemporada;
        String Nombre = temporada.getNombreTemporada();

        if(Nombre.length() >= 25)
        {
            Nombre = Nombre.substring(0,22);
            Nombre = Nombre + "...";
        }

        AQuery androidAQuery=new AQuery(mItemImage.getContext());
        androidAQuery.id(mItemImage).image(temporada.getPoster(), true, true, 150,0);

        //Picasso.with(mItemImage.getContext()).load(mserie.getPoster()).into(mItemImage);

        mItemDate.setText(Nombre);
        mItemidTMDB.setText(idSerie);
        mItemNumTemp.setText(Integer.toString(temporada.getNumeroTemporada()));
        mItemNumEps.setText(Integer.toString(temporada.getNumeroEpisodios()));


        //THIS CODE SECTION CALCULATES PERCENTAGE
        if(tipo.equalsIgnoreCase("SQL"))
        {
            int porcen=1;
            int numEps = temporada.getNumeroEpisodios();
            if(numEps == 0){
                numEps = 1;
            }
            porcen = (temporada.getEpisodiosVsitos() * 100) / numEps;
            mNumEpsVistoVal.setText(Integer.toString(porcen) + "%");
        }
            else
        {
            mNumEpsVisto.setVisibility(View.INVISIBLE);
            mNumEpsVistoVal.setVisibility(View.INVISIBLE);
        }
    }
}

}

RecyclerAdapterEpisodio

public class RecyclerAdapterEpisodio extends 
RecyclerView.Adapter<RecyclerAdapterEpisodio.EpisodioHolder> {
private ArrayList<Episodio> mEpisodio;
private int IdSerie;
private RecyclerAdapterEpisodio miAdaptador;
private String Tipo;
private View v;


    //5
    @Override
    public void onClick(View v) {
        /*Context context = itemView.getContext();
        Intent showPhotoIntent = new Intent(context, Pelicula.class);
        showPhotoIntent.putExtra(PHOTO_KEY, peli);
        context.startActivity(showPhotoIntent);*/
    }

    public void bindPhoto(final Episodio mEpisodio, final int mIdSerie, String tipo) {
        episodio = mEpisodio;

        if (tipo.equalsIgnoreCase("SQL")) {
            if(episodio.isVisto()){
                mBoton.setBackgroundResource(R.drawable.ojoabierto);
            }else{
                mBoton.setBackgroundResource(R.drawable.ojocerrado);
            }

            mBoton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    if (episodio.isVisto()) {
                        //mBoton.setBackgroundResource(R.drawable.ojoabierto);
                        DBHelper mydb = new DBHelper(v.getContext());
                        mydb.CancelVerEpisodio(episodio.getIdEpisodio());
                        v.setBackgroundResource(R.drawable.ojocerrado);
                        episodio.setVisto(false);

                    } else//else
                    {
                        //mBoton.setBackgroundResource(R.drawable.ojocerrado);
                        DBHelper mydb = new DBHelper(v.getContext());
                        mydb.VerEpisodio(episodio.getIdEpisodio());
                        mBoton.setBackgroundResource(R.drawable.ojoabierto);
                        episodio.setVisto(true);
                    }
                }
            });
        }
        else
        {
            mBoton.setVisibility(View.INVISIBLE);
        }

1 个答案:

答案 0 :(得分:0)

在你的拳头活动中

在OnResume()内部加载。这样当你回归活动时。将首先调用onResume()方法,您将获得更新的数据。这是当您所有其他块代码运行良好但您在刷新页面时遇到问题。

在第一个活动

中将加载方法从onCreate()移动到onResume()