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

customAdapter 여러개 사용 질문 입니다. (소스포함)

0 추천

  

public class MileageMenu extends Activity {
  
          private Button center_1; 
          private Button center_2; 
          private Button center_3; 
          private LinearLayout layout_1; 
          private LinearLayout layout_2; 
          private LinearLayout layout_3; 
          private ListView rec_list; 
          private ListView my_order_list; 
          private ListView total_list;  
    private Runnable viewGroups;  
    private int progressVal = 0; 
    private Handler handler; 
    private OrderlistAdapter o_adapter; 
    private ArrayList<Orderlist> o_groups = null;  
    private RecAdapter r_adapter; 
    private ArrayList<Reclist> r_groups = null; 
          protected void onCreate(Bundle savedInstanceState) { 
                    super.onCreate(savedInstanceState); 
                    setContentView(R.layout.mileage_menu); 
                    title = (TextView)findViewById(R.id.TextView02); 
                    center_1 = (Button)findViewById(R.id.h_my_center_press_1); 
                    center_2 = (Button)findViewById(R.id.h_my_center_press_2); 
                    center_3 = (Button)findViewById(R.id.h_my_center_press_3); 
                    layout_1 = (LinearLayout)findViewById(R.id.FR_CUS_1); 
                    layout_2 = (LinearLayout)findViewById(R.id.FR_CUS_2); 
                    layout_3 = (LinearLayout)findViewById(R.id.FR_CUS_3); 
                    rec_list = (ListView)findViewById(R.id.rec_list); 
                    my_order_list = (ListView)findViewById(R.id.my_order_list); 
                    total_list =  (ListView)findViewById(R.id.total_list); 

                    center_1.setSelected(true); 
                    center_2.setSelected(false); 
                    center_3.setSelected(false); 
                    layout_2.setVisibility(View.INVISIBLE); 
                    layout_3.setVisibility(View.INVISIBLE);
 
        handler = new Handler(); 
 
        r_groups = new ArrayList<Reclist>(); 
        r_adapter = new RecAdapter(MileageMenu.this, R.layout.rec_list_detail, r_groups); 
        rec_list.setAdapter(r_adapter); 

        o_groups = new ArrayList<Orderlist>(); 
        o_adapter = new OrderlistAdapter(MileageMenu.this, R.layout.order_list_detail, o_groups); 
        my_order_list.setAdapter(o_adapter); 
        viewGroups = new Runnable(){ 
                     @Override 
                     public void run() { 
                          getReclist(); 
                          getOrderlist(); 
                     } 
                  }; 
        Thread thread =  new Thread(null, viewGroups, "MagentoBackground"); 
        thread.start();
 

                    center_1.setOnClickListener(new View.OnClickListener() { 
                               @Override 
                               public void onClick(View v) { 
                                         // TODO Auto-generated method stub 
                                         center_1.setSelected(true); 
                                         center_2.setSelected(false); 
                                         center_3.setSelected(false); 
                                         layout_1.setVisibility(View.VISIBLE); 
                                         layout_2.setVisibility(View.INVISIBLE); 
                                         layout_3.setVisibility(View.INVISIBLE); 
                            handler = new Handler();  

                            viewGroups = new Runnable(){ 
                                          public void run() { 
                                               getReclist(); 
                                          } 
                                       }; 
                            r_groups = new ArrayList<Reclist>(); 
                            r_adapter = new RecAdapter(MileageMenu.this, R.layout.rec_list_detail, r_groups); 
                            rec_list.setAdapter(r_adapter); 
                            Thread thread =  new Thread(null, viewGroups, "MagentoBackground");
                            thread.start();
 
                    center_2.setOnClickListener(new View.OnClickListener() {
 

                               public void onClick(View v) {
                                         center_1.setSelected(false); 
                                         center_2.setSelected(true); 
                                         center_3.setSelected(false); 
                                         layout_1.setVisibility(View.INVISIBLE); 
                                         layout_2.setVisibility(View.VISIBLE); 
                                         layout_3.setVisibility(View.INVISIBLE); 
                            handler = new Handler();   
                            viewGroups = new Runnable(){
                                          public void run() { 
                                               getOrderlist(); 
                                          } 
                                       };
 
                            o_groups = new ArrayList<Orderlist>(); 
                            o_adapter = new OrderlistAdapter(MileageMenu.this,R.layout.order_list_detail, o_groups); 
                            my_order_list.setAdapter(o_adapter); 
                            Thread thread =  new Thread(null, viewGroups, "MagentoBackground");
                             thread.start();
 

                    center_3.setOnClickListener(new View.OnClickListener() {
 
                               public void onClick(View v) { 
                                         center_1.setSelected(false); 
                                         center_2.setSelected(false); 
                                         center_3.setSelected(true); 
                                         layout_1.setVisibility(View.INVISIBLE); 
                                         layout_2.setVisibility(View.INVISIBLE); 
                                         layout_3.setVisibility(View.VISIBLE); 
                               }

                    });

          }
 
          private void getOrderlist(){ 
        //데이터 저장작업 
         runOnUiThread(returnRes);

    }
 
          private void getReclist(){ 
         //배열에 데이터 저장 작업 
        runOnUiThread(returnRes2);

          }
 
          private Runnable returnRes = new Runnable() {
  
        public void run() {
 
            if(o_groups != null && o_groups.size() > 0){

                 o_adapter.notifyDataSetChanged();  
                 for(int i=0;i<o_groups.size();i++) { 
                    o_adapter.add(o_groups.get(i)); 

                 }

             }

            o_adapter.notifyDataSetChanged();  
         }

    };
  
    private Runnable returnRes2 = new Runnable() {
 
        public void run() {
 
          if(r_groups != null && r_groups.size() > 0){ 
                    r_adapter.notifyDataSetChanged();
 
                    for(int i=0;i<r_groups.size();i++){  
                               r_adapter.add(r_groups.get(i));   
                    } 
          } 
            m_ProgressDialog.dismiss();  
            r_adapter.notifyDataSetChanged();
 
         } 
    }; 
}

 

변경할 시점에서 setAdapter도 해봤고

listview도 여려개 만들어서 visible/invisible하는데

listview가 아니라 listview의 부모인 LinearLayout을

visible/invisible합니다.

그래도 두가지 리스트중 하나만 보이고 다른 하나는 안보이네요.

로그로 확인하니 코드는 동작하는 것 같은데, Ui에서는 표시가 되지 않고 있습니다.

여기서 잘못된 것이 무엇일까요.. 

 

일월 (510 포인트) 님이 2014년 7월 10일 질문
일월님이 2014년 7월 10일 수정
코드에 그렇게 동작하도록 작성 하셨네요.

layout_1 = (LinearLayout)findViewById(R.id.FR_CUS_1);
layout_2 = (LinearLayout)findViewById(R.id.FR_CUS_2);
layout_3 = (LinearLayout)findViewById(R.id.FR_CUS_3);

위 3개 변수를 따라서 확인 해보세요.

1개의 답변

0 추천
 
채택된 답변
  1. invisible 은 보이진 않아도 area 자리를 잡아 먹죠 gone 을 쓰세요. 단순히 영어 측면으로 invisible  을 설명 드렸는데 코드상으로 직접 invisible 을 쓰실줄은 몰랐네요 ㄷ ㄷ ㄷ 
aucd29 (218,390 포인트) 님이 2014년 7월 10일 답변
일월님이 2014년 7월 10일 채택됨
네.. 이런 어이없는 실수를...ㅋㅋ;; 감사합니다..
...