2011-01-09 2 views
0

나는 각 탭에 listview가 포함 된 네 개의 탭으로 구성된 탭 레이아웃을 구현했습니다. 이전에 listview와 동일한 설정을 탭 호스트에서 사용하지 않았으므로 정상적으로 작동했습니다. 목록 항목을 클릭하면 새 활동이 시작됩니다. 하지만 이제 목록을 클릭 할 수 없습니다 scrollable.how 이제까지, 모든 탭을 한 번 클릭 한 다음 스크롤/행을 시도 할 때, 그것은 완벽하게 작동합니다. 둘 다 가능하게하는 방법을 알려주십시오. 코드는 다음과 같습니다.안드로이드 탭 레이아웃 목록보기를 클릭 할 수 없음

tabHost = (TabHost) findViewById(android.R.id.tabhost); 
     tabHost.setup(); 
     tabHost.setOnTabChangedListener(this); 

     list = (ListView) findViewById(R.id.listAll); 
     list.setEmptyView((TextView) findViewById(R.id.empty)); 

     //list for all 

     tabHost.addTab(tabHost.newTabSpec(LIST_ALL).setIndicator("All Events").setContent(new TabContentFactory() { 
      public View createTabContent(String arg0) { 
       try{ 
        Event event = new Event(); 
        final String [] eventTitleArray = new String[XmlParser.eventsList.size()]; 
        String [] eventDateArray = new String[XmlParser.eventsList.size()]; 
        String [] eventImageLinkArray = new String[XmlParser.eventsList.size()]; 

       for(int i=0;i<XmlParser.eventsList.size();i++){ 
         event = XmlParser.eventsList.get(i); 
         eventTitleArray[i] = event.getTitle(); 
         if(event.getDistance()!=0.0) 
          eventDateArray[i] = event.getsDate() +" - " +Double.toString(event.getDistance())+"mi"; 
         else 
          eventDateArray[i] = event.getsDate(); 
         eventImageLinkArray[i] = event.getImageLink(); 


         Log.i(tag , "event detail"+event.getTitle()); 
        } 
        list=(ListView)findViewById(R.id.listAll); 
        adapter= new LazyAdapter(HomeActivity.this, eventTitleArray,eventDateArray,eventImageLinkArray); 
        list.setAdapter(adapter); 
        list.setFocusable(false); 
        list.setOnItemClickListener(new OnItemClickListener() { 
         @Override 
         public void onItemClick(AdapterView<?> arg0, View arg1, 
           int position, long arg3) { 
          Intent intent = new Intent(HomeActivity.this, DisplayActivity.class); 
          Bundle b = new Bundle(); 
          System.out.println("position in list:"+position); 
          System.out.println("title name in the list:"+eventTitleArray[position]); 
          b.putString("eventTitle", eventTitleArray[position]); 
          intent.putExtras(b); 
          startActivity(intent); 

          Toast.makeText(getApplicationContext(), "Detailed view for the Event", Toast.LENGTH_SHORT).show(); 


         } 
        }); 
       } 
       catch(Exception e){ 
        e.printStackTrace(); 
       } 
       return list; 
      } 
     })); 

     tabHost.addTab(tabHost.newTabSpec(LIST_TODAY).setIndicator("Events Today").setContent(new TabContentFactory() { 
      public View createTabContent(String arg0) { 
       return list; 
      } 
     })); 

답변

0

난 그냥 이런 짓을하고 목록 지금은 완벽하게 잘 작동합니다.

 tabHost.setCurrentTab(3); 
     tabHost.setCurrentTab(2); 
     tabHost.setCurrentTab(1); 
     tabHost.setCurrentTab(0); 
0

레이아웃 XML 파일에 클릭 가능한 것으로 표시된 ListView가 있습니까?

은 다음과 비슷한 모습이 될 것입니다

<ListView 
     android:id="@+id/MyListView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:clickable="true"/> 
+0

죄송합니다. 어떻게 표시 되나요? 또한, 질문을 다시 읽으십시오, 나는 다만 더 귀중한 약간 정보를 추가했다 –

+0

그것은 이상했다; 텍스트는 내 응답에 있었지만 어떤 이유로 렌더링되지 않았습니다. –

+0

고마워요.하지만 내 질문을 다시 읽었어요. 그것에 몇 가지 정보를 추가했습니다. 목록은 클릭 가능/스크롤 가능하지만 마지막 위젯을 클릭 한 후에 만 ​​가능합니다. –