回答

收藏

Recyclerview适配器的notifyDataSetChanged不更新RecyclerView

技术问答 技术问答 249 人阅读 | 0 人回复 | 2023-09-12

我有一个RecyclerView带有firebase实时数据库和本地数据库SQLite数据库聊天应用程序。我将消息保存到当地数据库(SQLite)中间,然后调用adapter.notifyDataSetChanged()。3 F+ g6 D1 z+ L. d) z; L
如果消息在数据库中(唯一的消息)ID),则SQLite将在数据库insertOrThrow返回0 的方法。我正在检查这样的可用性。) L3 T) f5 {# T* ?7 u6 B4 |9 q. ?
if (id == 0) {    Log.d(TAG,"Database Already Has Value Of This Random Id ");    adapter.notifyDataSetChanged();} else    Chat_Wrapper chat_wrapper = new Chat_Wrapper(Chat_Msg,null,null,null,null,null,null,Chat_TimeStamp,UserPhone_Intent,UserImage_Intent,Chat_FROM,null,null,id);    message.add(chat_wrapper);    adapter.notifyDataSetChanged();}但是,即使else正在调用这个句子,我的RecyclerView屏幕不会更新,但在后台,如果我输入或收到任何信息,它将保存在本地数据库中,但不会显示在屏幕上。
8 z* M9 [6 G2 o8 d, B1 VRecyclerView在以下情况下可以聊天% l, P! J+ `: Y/ C
[ol]当我从最近的应用程序中删除应用程序时2 q8 x# e, n1 \; |& I
停止从本地数据库获取数据2 z$ k; q7 m& ?
聊天屏幕首次启动[/ol]当我直接从通知中进入聊天屏幕时,我遇到了这个问题。
3 U) E. G- Q1 J. r- j* y这就是我正常加载聊天片段的方式。0 r- Y$ t' ^; }+ p( e# w6 m
getFragmentManager().beginTransaction().add(R.id.Navigation_Drawer,chatFragment).commit();
' l  ?' z) ~% s) h2 x加载Fragment从Notification使用Asynctask" v/ X" ?% H; C" a! X, i9 ]
((Navigation_Drawer)context).getFragmentManager().beginTransaction().replace(R.id.Navigation_Drawer,chatFragment).commit();这从通知开始ChatFragment的方式。
# w3 j) b" j* ?' spublic class FireBase_Messaging_Service extends FirebaseMessagingService    public static final String TAG="###FireBase MSG###";    public static final int NOTIFICATION=5;    String UserName;    String ID;    String Msg;    Map data;    @Override    public void onMessageReceived(RemoteMessage remoteMessage)        super.onMessageReceived(remoteMessage);        Log.d(TAG,"From " remoteMessage.getFrom();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;if (remoteMessage.getData().size()>()()()()())(               )data = remoteMessage.getData();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Log.d(TAG,"Message Data " remoteMessage.getData());            data = remoteMessage.getData();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UserName = data.get("name");            ID = data.get("ID");            Msg = data.get("Message");            showNotification(Msg,ID,UserName);        }        if (remoteMessage.getNotification()!=null)              Log.d(TAG,"Message Notification Body " remoteMessage.getNotification().getBody();            Toast.makeText(this,"Notification " remoteMessage.getNotification().getBody(),Toast.LENGTH_LONG).show();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;private void showNotification(String Message,String ID,String UserName)              Log.d(TAG,"Show Notification " Message " " ID);        Intent intent=new Intent(this,Navigation_Drawer.class);        intent.putExtra("Type","Text");      intent.putExtra("Type",MsgType);        intent.putExtra("ID",ID);        intent.putExtra("uname",UserName);        intent.putExtra("Message",Msg);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);        PendingIntent pendingIntent=PendingIntent.getActivity(this,NOTIFICATION,intent,PendingIntent.FLAG_UPDATE_CURRENT);        int color = getResources().getColor(R.color.black);        String ChannelID = "Message";        notificationChannel(ChannelID,"Chat");        NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext(),ChannelID)                .setSmallIcon(R.drawable.default_x)                .setColor(color)                .setContentTitle(UserName)                .setContentText(Message)                .setChannelId(ChannelID)                .setTicker("My App")                .setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND | Notification.FLAG_SHOW_LIGHTS)                .setLights(0xff00ff00,/ / To change Light Colors                .setStyle(new NotificationCompat.BigTextStyle().bigText(Message))//For Expandable View                .setPriority(NotificationCompat.PRIORITY_DEFAULT)                .setContentIntent(pendingIntent)                .setAutoCancel(true);        NotificationManagerCompat managerCompat = NotificationManagerCompat.from(this);        managerCompat.notify(NOTIFICATION,builder.build();@Override    public void onDeletedMessages()(){        super.onDeletedMessages();        private void notificationChannel (String ChannelID,String channelName)              if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)                  NotificationChannel  channel = new NotificationChannel(ChannelID,channelName,NotificationManager.IMPORTANCE_DEFAULT);            channel.setLightColor(Color.GREEN);            NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);            notificationManager.createNotificationChannel(channel);      我还通过记录日志注意到,在将数据添加到列表中后,message.add(chat_wrapper)它首先显示了大小的增加,但当while循环结束时,它显示了的最后一个大小ArrayList。
, J6 @; n( x1 B4 C. S) N这是ChatFragment课程。
" y  o* J% h- B8 @2 j    public class Chat_Screen_Fragment extends Fragment implements View.OnClickListener,ChildEventListener{    public static final String TAG = "###CHAT SCREEN###";    List message = new ArrayList();     Chat_Adapter adapter;    RecyclerView recyclerView;& o+ q& x" v' X4 ?; A& _7 w
    LinearLayoutManager layoutManager;
9 a! ?; H0 W8 O* d) l( t4 ~    @Nullable
: {$ G1 T& X8 v; f' h    @Override+ {, ?- Q$ y# ?0 A0 k# g" s+ s
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {9 Q- L5 |' J+ Q9 ^4 T3 n
        View v=inflater.inflate(R.layout.chat_screen_main_fragment,container,false);
/ U" t/ I% ~) O# m( a$ ]        setRetainInstance(true);' T4 y8 G1 B+ r) {/ v
     GET INTENT VALUES FROM USER PROFILE CLASS- j8 p8 A7 |3 P" L" c( `% W# T
        UserName_Intent = getArguments().getString("Get_Name");1 C& y" J0 F& |% u3 h8 J5 S2 ^  q
        UserImage_Intent = getArguments().getString("Get_Image");) w( N" G: R5 v
        UserPhone_Intent = getArguments().getString("Get_Phone");8 W# j4 [  I' d" Z* V
        UserID_Intent = getArguments().getString("Get_ID");0 ?! X: Z6 t6 u3 }
        FirebaseToken_Intent = getArguments().getString("Get_Token"); //Firebase Token of other person) j, A- `1 @7 M3 u: J) d1 v* l
        Room_Name_Intent = getArguments().getString("Get_Other"); // Room Name of chat
, O& O& }6 r% e8 C        UserLastSeen_Intent=getArguments().getString("LastSeen");
! Q  l7 z$ H/ B7 N5 x" d, }6 b  `      Sender_FCMToken = Session.getFirebaseID();
$ F  n4 }9 D% s+ ?     RECYCLER VIEW
* J0 E# C) `, h# S        recyclerView = v.findViewById(R.id.Chat_Screen_Message_List);+ \4 b" {# c  u/ X
        layoutManager = new LinearLayoutManager(getActivity());' D* P; G" `' z- f5 Z2 t) c
        layoutManager.setStackFromEnd(true);
0 P2 K- d8 D, s* S% G3 p$ i        recyclerView.setHasFixedSize(true);: i% S8 H2 N; _0 h+ t9 ?0 e
        recyclerView.setLayoutManager(layoutManager);3 M8 O7 x& a, U1 R& F6 ?7 d
        databaseReference = FirebaseDatabase.getInstance().getReference().child(Room_Name_Intent);) a( M! H, o' L0 {, [9 @
        databaseReference.addChildEventListener(this);
$ c: g2 p/ U& r! U# B        adapter = new Chat_Adapter(getActivity(), message);: }' O8 e, @  h3 Y- F
        recyclerView.setAdapter(adapter);
& k/ q9 R" o: l) }( G5 z     FETCH OLD MESSAGE FROM DATABASE
4 A0 M4 `* s& S1 [. [  x        chatDatabase();
7 U9 e/ Z8 ?6 I4 _; r7 L, @6 J        return v;
$ }7 ^0 p/ b! k& a" B1 x    }0 _3 e7 \4 T: p. f8 m
    // FIREBASE REAL TIME DATABASE WHICH FETCH ALL MESSAGES (SYNC) FROM ONLINE DATABASE, U' N+ z# D, M. x
    @Override
) N8 s9 p: w6 d2 F) o: j5 ?    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
9 L9 }* Q. w; O4 Y2 N7 a. ?  B9 S% Z        append_chat_conversation(dataSnapshot);
2 a/ v+ P' C% x    }) S' v9 h& `' U
    @Override
/ U2 t8 C: r. q" e3 _  h& B    public void onChildChanged(DataSnapshot dataSnapshot, String s) {( J( q6 W# {2 F; }: I
        append_chat_conversation(dataSnapshot);' j0 n0 d7 P7 P  _; F# \1 V
    }  r/ D0 L) x& |! C
    @Override+ M& I8 R" J1 I- j
    public void onChildRemoved(DataSnapshot dataSnapshot) {
' h# _; e) q6 q- ?. X    }! S0 J# j5 ^, i* D0 t
    @Override
& }; Z: n# p: o) c# t1 m    public void onChildMoved(DataSnapshot dataSnapshot, String s) {$ b& v6 r5 f0 N& ?
    }
! G9 k6 T2 G5 f2 \    @Override- @8 W* ~& e! y) Y9 P
    public void onCancelled(DatabaseError databaseError) {% X+ ^6 }7 M: a# C! [
    }! u) k, ?8 c+ k+ \' F7 O
    private synchronized void append_chat_conversation(DataSnapshot dataSnapshot) {8 c  Y, w8 X7 b3 A
        iterator = dataSnapshot.getChildren().iterator();( E1 r' t* F: p# T/ O4 k4 u
        while (iterator.hasNext()) {- ]! u5 ~3 G$ W6 i/ r% E: q
       GETTING DATA FROM FIREBASE DATABASE. E1 x$ g3 i* g- |/ I3 E
            Chat_Msg = (String) ((DataSnapshot) iterator.next()).getValue();1 e/ P2 f- I9 |9 Q! M. [  p
            Chat_FROM = (String) ((DataSnapshot) iterator.next()).getValue();
0 l1 U3 \9 H$ V# m            Chat_FROM_ID = (String) ((DataSnapshot) iterator.next()).getValue();
! I( _! q$ Q, K/ e9 s/ R            Chat_TO = (String) ((DataSnapshot) iterator.next()).getValue();
: a: G& x) d. B) Z8 T            Chat_TimeStamp = (String) ((DataSnapshot) iterator.next()).getValue();" y5 `2 @. V2 `& j) X4 {
            Chat_Type= (String) ((DataSnapshot) iterator.next()).getValue();; `1 W1 P; f) z4 ]9 r# @4 Q
            Random_ID=(String) ((DataSnapshot) iterator.next()).getValue();
/ I9 M" ], i* a$ b9 Y! g* P            Chat_FCM_FROM= (String) ((DataSnapshot) iterator.next()).getValue();4 |9 e2 o1 v- B
            Chat_FCM_TO= (String) ((DataSnapshot) iterator.next()).getValue();) k- c# J, @* v, y7 s5 [
            Log.d(TAG, "Chat Items "   Chat_Msg   " "   Random_ID);
' {9 _4 d5 I4 H, F! m            Chat_Database tempChatDatabase = new Chat_Database(getActivity());
9 m8 O7 ~5 F& l            boolean hasValue = tempChatDatabase.CheckValueExist(Random_ID);
( S/ q$ T0 X2 A! q3 y  w2 v' E            Log.d(TAG,"DATABASE ALREADY HAS VALUE OF TIMESTAMP= " hasValue);
. r$ G7 P- G+ l4 G1 Q* m' [            if (!hasValue) {
* ~# C$ |+ U' l& K" I: K9 e                Log.d(TAG,"DATABASE DON'T HAVE SAME ENTRY FOR TIME STAMP. ENTERED INTO HAS VALUE");
0 ^9 R, k" A9 n1 x                Log.d(TAG,"Chat Message " Chat_Msg);
; f* N; v9 o4 k3 H           if (Chat_Type.equals("Typed_Message")) {. r3 L; x6 ]: z4 e* `
                Log.d(TAG, "VIEW TYPE IS Message "   Chat_Msg);) u/ N6 ?% O- n' V
                long id = chat_database.Insert_Chat(Session.getUserID(),Room_Name_Intent, UserID_Intent, "Text", Chat_Msg, Chat_FROM, Chat_TO, Chat_TimeStamp, Chat_FCM_FROM, Chat_FCM_TO, Session.getPhoneNO(), UserPhone_Intent,Random_ID,UserImage_Intent,UserLastSeen_Intent,Chat_FROM_ID);
# z* x, ~0 q3 g5 w( Q, I2 M         Adding Chat Data Into Database
! `' Z1 N1 a3 J! F* N                Log.d(TAG,"Database Entry ID " id);
; p6 P5 |2 G' j# A                if (id == 0) {
; }8 U8 }+ O# O$ D                    Log.d(TAG,"Database Already Has Value Of This Random Id ");. u* I+ b8 P( q* h
                    adapter.notifyDataSetChanged();) k$ b5 z# L& J* M5 @# f: s
                    continue;
9 s; h3 t( o$ [4 d                } else {
8 O* o: m6 m7 h4 \1 N' o! D                    Log.d(TAG,"Database Don't Has Value Of This Random Id ");9 V& m" q( ^: u# O
                    Log.d(TAG,"Message Size " message.size());
2 T8 m& E, a6 |% f) D" k; i7 u                    Chat_Wrapper chat_wrapper = new Chat_Wrapper(Chat_Msg, null, null, null, null, null, null, Chat_TimeStamp, UserPhone_Intent, UserImage_Intent, Chat_FROM, null,null,id);, f* r3 m) }! ~. P8 A
                    message.add(chat_wrapper);; n8 @) @) L* H5 m. h% X
                    Log.d(TAG,"Message Size " message.size());+ _% D& W7 B1 ]9 r$ _, i4 l9 d+ s  {7 P
                    adapter.notifyDataSetChanged();
) ~1 p  \6 b2 s& Q, i8 ]! Q9 U; b                    Log.d(TAG,"Adapter Notified Data Set " adapter.getItemCount());9 o" p6 o  \3 n# r7 b  P% H6 H
                    recyclerView.post(new Runnable() {
/ G2 Y+ i6 k' D$ K                                @Override                        public void run()()(){                                                                                                Log.d(TAG,"Moving to Bottom");                            recyclerView.smoothScrollToPosition(adapter.getItemCount());                                    ;   ;                                            Log.d(TAG,"MESSAGE ARRAY SIZE "   message.size();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;chat_database.isDatabaseClose();}     private void chatDatabase()()(){         Database Init and Filling Adapter        Log.d(TAG,"Chat Database Function");        chat_database=new Chat_Database(getActivity();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;chatCursor=chat_database.getUserChat(UserID_Intent);        boolean checkDB_Exist=functions.DatabaseExist(getActivity(),"CHAT_DATABASE.DB");        boolean chatItemsCounts=chatCursor.getCount()>0;           chatCursor.moveToFirst();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Log.d(TAG,"Value At Chat Database "  checkDB_Exist " " chatItemsCounts);        if (checkDB_Exist && chatCursor.getCount()>0 && chatCursor.getString(chatCursor.getColumnIndex("RECEIVER_USER_ID")).equals(UserID_Intent))              Log.d(TAG,"Database Exist Chat Database");            message.clear();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;chatCursor.moveToFirst();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;do                    database_rowID=chatCursor.getInt(chatCursor.getColumnIndex("ID"));                database_userID=chatCursor.getString(chatCursor.getColumnIndex("USER_ID"));                database_RoomName =chatCursor.getString(chatCursor.getColumnIndex("ROOM_NAME"));                database_ReceiverID=chatCursor.getString(chatCursor.getColumnIndex("RECEIVER_USER_ID"));                database_MessageType=chatCursor.getString(chatCursor.getColumnIndex("MESSAGE_TYPE"));                database_Message=chatCursor.getString(chatCursor.getColumnIndex("USER_MESSAGE"));                database_MsgFrom=chatCursor.getString(chatCursor.getColumnIndex("SENDER_NAME"));                database_MsgTo=chatCursor.getString(chatCursor.getColumnIndex("RECEIVER_NAME"));                database_TimeStamp=chatCursor.getString(chatCursor.getColumnIndex("TIME_STAMP"));                database_FCMfrom=chatCursor.getString(chatCursor.getColumnIndex("SENDER_TOKEN"));                database_FCMto=chatCursor.getString(chatCursor.getColumnIndex("RECEIVER_TOKEN"));                database_LocalPath=chatCursor.getString(chatCursor.getColumnIndex("DOWNLOADED_AT"));                database_PhoneFrom=chatCursor.getString(chatCursor.getColumnIndex("MY_PHONE"));                database_PhoneTo=chatCursor.getString(chatCursor.getColumnIndex("OTHER_PHONE"));                Log.d(TAG,"Value Of Database Message String = " database_Message);                Log.d(TAG,"Row ID of Database " database_rowID);         Check Message Type                    Log.d(TAG,"Message Type Is Text");                    Chat_Wrapper text = new Chat_Wrapper(database_Message,null,null,null,null,null,null,database_TimeStamp,database_PhoneTo,UserImage_Intent,database_MsgFrom,null,null,database_rowID);                    message.add(text);                                     while(chatCursor.moveToNext();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Room_Name_Intent = database_RoomName;            layoutManager = new LinearLayoutManager(getActivity();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;recyclerView.setLayoutManager(layoutManager);            adapter.notifyDataSetChanged();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;chatCursor.close();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;boolean value = chat_database.isDatabaseClose();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;recyclerView.post(new Runnable()(){               @Override                public void run()(){                   Log.d(TAG,"Moving to Bottom");                    recyclerView.smoothScrollToPosition(message.size()-1);                  );                  Log.d(TAG,"Value Of Database Close or Not " value);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
8 T. u' T# X* p. x) T# f    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则