마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

다른 adapter listview 갱신하려면??

0 추천
안녕하세요. 현재 메인 액티비티와 어뎁터, 서브어뎁터 총 3개의 클래스가 있습니다.

메인 액티비티에서 두 개의 어뎁터를 정의해주고

1. MainActivity

private void connectAdapter(){

  adapter = new WorkRequestMntnceInfoListViewAdapter(getApplicationContext());
  userList = (ListView) findViewById(R.id.user_mntnceinfo_list);
  userList.setAdapter(adapter);

----중략----

   adapter.notifyDataSetChanged();

}

private void connectSubAdapter(){

  subAdapter = new WorkRequestMntnceInfoSubListViewAdapter(getApplicationContext());
  userSubList = (ListView) findViewById(R.id.user_mntnceinfo_sublist);
  userSubList.setAdapter(subAdapter);

----중략----

   adsubAdapter.apter.notifyDataSetChanged();

}

2. Adapter

---중략(데이터 최종 업데이트 후)---

  //this.notifyDataSetChanged(); // Adapter
  //subUser.notifyDataSetChanged(); // null error(SubAdapter)

3. subAdapter

---중략(데이터 최종 업데이트 후)---

  //this.notifyDataSetChanged(); // SubAdapter
  //subUser.notifyDataSetChanged(); // null error(Adapter)

위와 같이 각 어댑터에 다른 어댑터 호출 시 에러가 발생하고..

메인액티비티에서 호출하면 에러는 없으나, 갱신이 되질 않습니다.

어떻게 해야 될까요?

감사합니다.
동그랑때앵 (320 포인트) 님이 2016년 7월 7일 질문

1개의 답변

0 추천
customadapter일 경우 notifydataset~이 안되는 걸로 알고있습니다. 커스텀 내에서 thread 이용해서 구현하셔야 될거에요~ 저같은 경우는

 

    public void refresh(JSONArray arr){
        this.items=arr;
        ((CreateConsentNote)context).runOnUiThread(new Runnable() {
            public void run() {
                notifyDataSetChanged();
            }   
        });
    }

로 구현해서 해결하였습니다~
행인28 님이 2016년 7월 7일 답변
답변 감사합니다........
...