0

나는 나의 조각에 재활용보기를하고 난 수신기 전화, 그것은 이전 항목으로 새 항목을 교체 할 때 내 재활용이 방송 수신기 누군 데 문제에 ocuured 때마다 푸시 메시지입니다 볼 업데이트 싶지만 내가 원하는 새 행을 만들고 이전 항목은 여전히 ​​존재합니다. 나는 많은 수색을했지만 성공하지 못했습니다. 다음은 새로운 results ArrayList를 새로운 어댑터는 방송을 수신 할 때마다 만드는 있기 때문에업데이트 RecyclerView는

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View drawer = inflater.inflate(R.layout.fragment_notif_list, container, false); 
    rv = (RecyclerView) drawer.findViewById(R.id.recyclerview); 
    rv.setHasFixedSize(true); 
    mLayoutManager = new LinearLayoutManager(getActivity()); 
    rv.setLayoutManager(mLayoutManager); 
    prefs = getActivity().getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE); 


    mRegistrationBroadcastReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 

      if (intent.getAction().equals(Config.PUSH_NOTIFICATION)) { 
       // new push notification is received 
       Toast.makeText(getActivity(), "Push notification is received!", Toast.LENGTH_LONG).show(); 

       message = intent.getStringExtra("message"); 
       title = intent.getStringExtra("title"); 
       timestamp = intent.getStringExtra("timestamp"); 
       Log.d("message -->", message); 
       Log.d("title -->", title); 
       Log.d("time -->", timestamp); 
       MessageObj messageObj = new MessageObj(message,title,timestamp); 

       getDataSet(messageObj.getMessage(),messageObj.getTitle(),messageObj.getDate()); 

      } 
     } 
    }; 

    return drawer; 
} 


private void getDataSet(String message,String title,String date) { 
    ArrayList results = new ArrayList<MessageObj>(); 

     MessageObj obj = new MessageObj(message,title,date); 
     Log.d("result size :",results.size()+""); 
     results.add(results.size(),obj); 
    mAdapter = new MessageAdapter(getActivity(), results); 
    rv.setAdapter(mAdapter); 
    mAdapter.notifyDataSetChanged(); 


} 

답변

3

그것은이다에 방송 수신기를 가지고 내 조각이다. 브로드 캐스트 리시버의 범위를 벗어나 어레이 목록과 어댑터를 생성해야합니다. 그런 다음 브로드 캐스트를 받으면 배열 목록에 추가하면됩니다. 그런 다음 어댑터에 notifyDataSetChanged으로 전화하여 UI를 업데이트하십시오.

+0

당신은 내 인생을 저장, 감사합니다) – hdiz

+0

는, 한 번 더 질문을 실례합니다. 내가 애플 리케이션을 닫으면 모든 항목이 제거됩니다 어떻게 그들을 구할 수 있습니까 ?? sharedpreference를 사용해야합니까 ?? – hdiz

+0

그것은 선호도 나쁜 연습 데이터를 저장의 데이터가 검색 그래서 더 나은 상점 데이터베이스에서 데이터 또는 단지 몇 줄의 경우, 파일에 다음 넣어 느린하지 인덱스입니다. –

관련 문제