Java 将我的普通RecyclerView迁移到RecyclerView数据绑定

Java 将我的普通RecyclerView迁移到RecyclerView数据绑定,java,android,android-recyclerview,android-databinding,android-livedata,Java,Android,Android Recyclerview,Android Databinding,Android Livedata,我有一个问题,当我改变一些值时,比如在我的recyclerview中删除评论,它不会自动更新,谷歌说使用LiveData数据绑定recyclerview,有人曾经做过recyclerview LiveData数据绑定请帮我解决 这是我的MainActivity.java public class TabDetailHotActivity extends AppCompatActivity { //GLOBAL public static MainActivity mainActivity_;

我有一个问题,当我改变一些值时,比如在我的recyclerview中删除评论,它不会自动更新,谷歌说使用LiveData数据绑定recyclerview,有人曾经做过recyclerview LiveData数据绑定请帮我解决

这是我的MainActivity.java

public class TabDetailHotActivity extends AppCompatActivity {

//GLOBAL
public static MainActivity mainActivity_;

TextView TVGameDate;
TextView TVGameTitle;
ImageView IMGGameImage;

TextView TVSeenCounter;
TextView TVCommentCounter;
TextView TVLikeCounter;

ImageView IMGSeenView;
ImageView IMGCommentView;
ImageView IMGLikeView;

ImageView ICONHotTrendingNewsSaving;


//EVENT BUS
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MainActivity.EventStoredMessageTrending event) {
    getMessageTrendingMainActivity(event.SendMessageUrutan, event.SendTotalThread, event.SendMessageIDComment, event.SendMessageComment, event.SendMessageEntryTime, event.SendMessageisEdited, event.SendMessageEditTime);

}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MainActivity.EventStoredMessageTrendingLogin event) {
    getMessageTrendingLoginMainActivity(event.SendMessageUrutan, event.SendTotalThread, event.SendMessageIDComment, event.SendMessageComment, event.SendMessageEntryTime, event.SendMessageisEdited, event.SendMessageEditTime, event.SendMessageEditable);

}
public void getMessageTrendingMainActivity(int ReceivedMessageUrutan, int ReceivedTotalThread, String ReceivedMessageIDComment, String ReceivedMessageComment, String ReceivedMessageEntryTime, int ReceivedMessageEdited, String ReceivedMessageEditTime){
    Toast.makeText(this, "Load Comment Not Login :( >> ReceivedMessageComment:"+ReceivedMessageComment+", Toast.LENGTH_LONG).show();
}
public void getMessageTrendingLoginMainActivity(int ReceivedMessageUrutan, int ReceivedTotalThread, String ReceivedMessageIDComment, String ReceivedMessageComment, String ReceivedMessageEntryTime, int ReceivedMessageEdited, String ReceivedMessageEditTime, int ReceivedMessageEditable){
    Toast.makeText(this, "Load Comment Login :) >> ReceivedMessageComment:" + ReceivedMessageComment, Toast.LENGTH_LONG).show();
    createDummyDataComment(ReceivedMessageUrutan, ReceivedTotalThread, ReceivedMessageIDComment, ReceivedMessageComment, ReceivedMessageEntryTime, ReceivedMessageEdited, ReceivedMessageEditTime, ReceivedMessageEditable);

}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activitydetail_tabhot);



    ToolbarX = findViewById(R.id.toolbar);
    setSupportActionBar(ToolbarX);
    getSupportActionBar().setTitle("");
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    final CollapsingToolbarLayout collapsingToolbarLayout = findViewById(R.id.collapsing_toolbar);
    collapsingToolbarLayout.setTitle("");

    Intent intent = getIntent();
    mDummyIDContent = intent.getStringExtra("DummyIDContentPKG");
    mDummyTitle = intent.getStringExtra("DummyTitlePKG");
    mDummyPublishTime = intent.getStringExtra("DummyPublishTimePKG");
    mDummyImageOriPKG = intent.getStringExtra("DummyImageOriPKG");
    mDummyShortDescription = intent.getStringExtra("DummyShortDescriptionPKG");
    mDummySeen = intent.getIntExtra("DummySeenPKG", 0);
    mDummyComment = intent.getIntExtra("DummyCommentPKG", 0);
    mDummyLike = intent.getIntExtra("DummyLikePKG", 0);
    mDummyisComment = intent.getIntExtra("DummyisCommentPKG", 0);
    mDummyisLike = intent.getIntExtra("DummyisLikePKG", 0);
    mDummyisBookmark = intent.getIntExtra("DummyisBookmarkPKG", 0);





    date_Behaviour = findViewById(R.id.date_behavior);

    IMGGameImage = findViewById(R.id.backdrop);

    TVGameDate = findViewById(R.id.date);
    TVGameTitle = findViewById(R.id.title);

    TVSeenCounter = findViewById(R.id.TV_SeenCounter);
    TVCommentCounter = findViewById(R.id.TV_CommentCounter);
    TVLikeCounter = findViewById(R.id.TV_LikeCounter);


    RequestOptions requestOptions = new RequestOptions();
    requestOptions.error(UtilsNews.getRandomDrawbleColor());



    TVGameDate.setText(mDummyPublishTime);
    TVGameTitle.setText(mDummyTitle);

    TVSeenCounter.setText(String.valueOf(mDummySeen));
    TVCommentCounter.setText(String.valueOf(mDummyComment));
    TVLikeCounter.setText(String.valueOf(mDummyLike));


    Glide.with(this)
            .load(mDummyImageOriPKG)
            .apply(requestOptions)
            .transition(DrawableTransitionOptions.withCrossFade())
            .into(IMGGameImage);
    /*     initWebView(mUrl);*/


    ImageButton BTNSendMessageDetailHotTrendingNews = findViewById(R.id.BTN_SendMessageDetailHotTrendingNews);

    final TextView ETSendMessageDetailHotTrendingNews = findViewById(R.id.ET_SendMessageDetailHotTrendingNews);
    BTNSendMessageDetailHotTrendingNews.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String TheMessage = ETSendMessageDetailHotTrendingNews.getText().toString();
            if(!TheMessage.equals("")){
                if(mainActivity_!=null) {
                    mainActivity_.rncryptorLoadSendEditDelete("SendComment", mDummyIDContent, TheMessage);
                }
            }else{
                Toast.makeText(TabDetailHotActivity.this, "You don't send anything", Toast.LENGTH_SHORT).show();
            }
            ETSendMessageDetailHotTrendingNews.setText("");
        }
    });

    //
    if(mainActivity_!=null) {
        mainActivity_.rncryptorLoadSendEditDelete("LoadComment", mDummyIDContent, "");
    }

}

private void initWebView(String url) {
    WebView webView = findViewById(R.id.webView);
    webView.getSettings().setLoadsImagesAutomatically(true);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setDisplayZoomControls(true);
    webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    webView.setWebViewClient(new WebViewClient());
    webView.loadUrl(url);
}

ArrayList<ModelDetailHotTrendingNewsComment> modelDetailHotTrendingNewsComments = new ArrayList<ModelDetailHotTrendingNewsComment>();
AdapterDetailHotTrendingNewsComment.RecyclerViewClickListener listenerDetailHotTrendingNewsComment;
public void createDummyDataComment(int ReceivedMessageUrutan, int ReceivedTotalThread, final String ReceivedMessageIDComment, String ReceivedMessageComment, String ReceivedMessageEntryTime, int ReceivedMessageEdited, String ReceivedMessageEditTime, int ReceivedMessageEditable) {
    modelDetailHotTrendingNewsComments.add(new ModelDetailHotTrendingNewsComment(ReceivedMessageIDComment,ReceivedMessageComment,ReceivedMessageEntryTime,ReceivedMessageEditable,ReceivedMessageEditTime));

    if(ReceivedMessageUrutan ==  ReceivedTotalThread-1){
        listenerDetailHotTrendingNewsComment = new AdapterDetailHotTrendingNewsComment.RecyclerViewClickListener(){
            @Override
            public void onRowDetailHotTrendingNewsContainerClick(View view, int position) {

            }

            @Override
            public void onRowMessageEditClick(View view, int position) {

            }

            @Override
            public void onRowMessageDeleteClick(View view, final int position) {
                String[] YOURCHOICE = {"Yes", "No"};
                        AlertDialog.Builder builder = new AlertDialog.Builder(TabDetailHotActivity.this);
                        builder.setTitle("Do you want to delete this comment?");
                        builder.setItems(YOURCHOICE, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                if(which == 0){
                                    Toast.makeText(TabDetailHotActivity.this, "Deleted Successfully!", Toast.LENGTH_SHORT).show();
                                    if(mainActivity_!=null) {
                                        mainActivity_.rncryptorLoadSendEditDelete("DeleteComment", modelDetailHotTrendingNewsComments.get(position).getIdcontent(), "");
                                    }
                                }else if(which == 1){
                                    Toast.makeText(TabDetailHotActivity.this, "You don't delete the Comment", Toast.LENGTH_SHORT).show();
                                }
                            }
                        });
                        builder.show();
            }


        };

        RecyclerView RVDetailHotTrendingNewsComment = findViewById(R.id.RVDetail_HotTrendingNewsComment);
        RVDetailHotTrendingNewsComment.setHasFixedSize(true);
        AdapterDetailHotTrendingNewsComment adapterDetailHotTrendingNewsComment = new AdapterDetailHotTrendingNewsComment(this, modelDetailHotTrendingNewsComments, listenerDetailHotTrendingNewsComment);
        RVDetailHotTrendingNewsComment.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
        RVDetailHotTrendingNewsComment.setAdapter(adapterDetailHotTrendingNewsComment);
        //Optimized
        RVDetailHotTrendingNewsComment.setHasFixedSize(true);
        RVDetailHotTrendingNewsComment.setItemViewCacheSize(20);
    }

}

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

@Override
public void onBackPressed() {
    super.onBackPressed();
    supportFinishAfterTransition();
}


//EVENTBUS
@Override
public void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
}

@Override
public void onStop() {
    EventBus.getDefault().unregister(this);
    super.onStop();
}
公共类TabDetailHotActivity扩展了AppCompatActivity{
//全球的
公共静态main活动main活动;
TextView-TVGameDate;
文本视图TVGameTitle;
ImageView IMGGameImage;
文本视图TVSeenCounter;
文本视图计数器;
文本视图TVLikeCounter;
ImageView-IMGSeenView;
ImageView-IMGCommentView;
ImageView-IMGLikeView;
ImageView ICONHotTrendingNewsSaving;
//事件总线
@订阅(threadMode=threadMode.MAIN)
消息事件上的公共无效(MainActivity.EventStoredMessageRending事件){
getMessageTrendingMainActivity(event.SendMessageUrutan、event.SendTotalThread、event.SendMessageIDComment、event.SendMessageComment、event.SendMessageEntryTime、event.SendMessageisEdited、event.SendMessageEditTime);
}
@订阅(threadMode=threadMode.MAIN)
消息事件上的公共无效(MainActivity.EventStoredMessageRendingLogin事件){
getMessageTrendingLoginMainActivity(event.SendMessageUrutan、event.SendTotalThread、event.SendMessageIDComment、event.SendMessageComment、event.SendMessageEntryTime、event.SendMessageisEdited、event.SendMessageEditTime、event.SendMessageEditable);
}
public void GetMessageTrendingMain活动(int-ReceivedMessageUrutan、int-ReceivedTotalThread、String-ReceivedMessageEdComment、String-ReceivedMessageComment、String-ReceivedMessageComment、String-ReceivedMessageEntryTime、int-ReceivedMessageEdited、String-ReceivedMessageEditTime){
Toast.makeText(这是“加载注释而不是登录:(>>ReceivedMessageComment:+ReceivedMessageComment+”,Toast.LENGTH_LONG).show();
}
public void GetMessageTrendingLoginActive(int-ReceivedMessageUrutan、int-ReceivedTotalThread、String-ReceivedMessageGeidComment、String-ReceivedMessageComment、String-ReceivedMessageEntryTime、int-ReceivedMessageEdited、String-ReceivedMessageEditTime、int-ReceivedMessageEditable){
Toast.makeText(这是“加载注释登录:)>>ReceivedMessageComment:“+ReceivedMessageComment,Toast.LENGTH_LONG).show();
CreatedUMYDataComment(ReceivedMessageUrutan、ReceivedTotalThread、ReceivedMessageComment、ReceivedMessageEntryTime、ReceivedMessageEdited、ReceivedMessageEditTime、ReceivedMessageEditable);
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activitydetail_选项卡);
ToolbarX=findViewById(R.id.toolbar);
设置支持操作栏(工具栏X);
getSupportActionBar().setTitle(“”);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
最终折叠工具栏布局折叠工具栏布局=findViewById(R.id.collaving_toolbar);
折叠ToolbarLayout.setTitle(“”);
Intent=getIntent();
mDummyIDContent=intent.getStringExtra(“DummyIDContentPKG”);
mDummyTitle=intent.getStringExtra(“dummytilepkg”);
mDummyPublishTime=intent.getStringExtra(“DummyPublishTimePKG”);
mDummyImageOriPKG=intent.getStringExtra(“DummyImageOriPKG”);
mDummyShortDescription=intent.getStringExtra(“DummyShortDescriptionPKG”);
mDummySeen=intent.getIntExtra(“DummySeenPKG”,0);
mDummyComment=intent.getIntExtra(“DummyCommentPKG”,0);
mDummyLike=intent.getIntExtra(“DummyLikePKG”,0);
mdummyiscommentpkg=intent.getIntExtra(“DummyisCommentPKG”,0);
mDummyisLike=intent.getIntExtra(“DummyisLikePKG”,0);
mDummyisBookmark=intent.getIntExtra(“DummyisBookmarkPKG”,0);
date_behavior=findViewById(R.id.date_behavior);
IMGGameImage=findviewbyd(R.id.background);
TVGameDate=findViewById(R.id.date);
TVGameTitle=findviewbyd(R.id.title);
TVSeenCounter=findviewbyd(R.id.TV\u SeenCounter);
TVComentCounter=findViewById(R.id.TV\U CommentCounter);
TVLikeCounter=findViewById(R.id.TV_-LikeCounter);
RequestOptions RequestOptions=newrequestoptions();
错误(UtilsNews.getRandomDrawbleColor());
TVGameDate.setText(mDummyPublishTime);
TVGameTitle.setText(mDummyTitle);
TVSeenCounter.setText(String.valueOf(mDummySeen));
TVComentCounter.setText(String.valueOf(mDummyComment));
TVLikeCounter.setText(String.valueOf(mDummyLike));
用(这个)滑翔
.加载(mDummyImageOriPKG)
.apply(请求选项)
.transition(DrawableTransitionOptions.withCrossFade())
.into(IMGGameImage);
/*initWebView(mUrl)*/
ImageButton BTNSendMessageDetailHotTrendingNews=findViewById(R.id.BTN\u SendMessageDetailHotTrendingNews);
最终文本视图ETSendMessageDetailHotTrendingNews=findViewById(R.id.ET_SendMessageDetailHotTrendingNews);
BTNSendMessageDetailHotTrendingNews.setOnClickListener(新视图。OnClickListener(){
@凌驾
公共void onClick(视图){
字符串TheMessage=ETSendMessageDetailHotTrendingNews.getText().toString();
如果(!TheMessage.equals(“”){
if(main活动\!=null){
Main Activity_uu.rncryptorLoadSendEditDelete(“SendComment”,mDummyIDContent,TheMessage);
}
}否则{
Toast.makeText(TabDetailHotActivity.this,“您不发送任何东西”,Toast.LENGTH\u SHORT.show();
}
ETSendMessageDetailHotTrendingNews.setText(“”);
}
});
//
if(main活动\!=null){
mainActivity.rncryptorLoadSendEditDelete(“LoadComment”,mDummyIDContent,”);
}
}
私有void initWebView(字符串url){
WebView-WebView=findviewbyd(R.id.WebView);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuilt