2012-04-18 3 views
1

내 영어로 죄송합니다. 많은 것을 배우기.TabActivity의 탭을 클릭 할 때 함수를 호출하는 방법 Activity

내 앱에 TabActivity가 있습니다. 단추 중 하나가 클릭하면 컨텍스트 메뉴가 표시됩니다.

탭 중 하나를 클릭하여 메소드를 호출 할 수있었습니다. 그러나 동시에 탭 호출과 활동. 이것은 좋은 인상을주지 않는 현재의 것을 닫습니다.

예 : 나는 통과하지 못한 의도가 오류를 제공하는 경우 tabhost

intent = new Intent().setClass(this, NewsActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    spec = tabHost.newTabSpec(TAB_NEWS).setIndicator(getString(R.string.tab_news), res.getDrawable(R.drawable.ic_tab_news)).setContent(intent); 
    tabHost.addTab(spec); 

에 탭을 추가

.

intent = new Intent().setClass(this, NewsActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    spec = tabHost.newTabSpec(TAB_NEWS).setIndicator(getString(R.string.tab_news), res.getDrawable(R.drawable.ic_tab_news)).setContent(intent); 
    tabHost.addTab(spec); 

내가
tabHost.getChildAt(1).setOnTouchListener(new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 

      //Somethig to do 
      e 
      return false; 
     } 
    }); 

매우 감사 탭에 다음 리스너를 사용하는 메서드를 호출합니다.

답변

1

탭의 OnTouchListener에서 먼저 터치 이벤트가 클릭이 아닌 터치인지 확인합니다. 탭을 클릭 할 때 탭을 변경하지 않으려면 onTouch에서 true를 반환하십시오. 예 :

tabHost.getChildAt(1).setOnTouchListener(new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      int action = event.getAction(); 

      if(action == MotionEvent.ACTION_UP) 
      { 
       //Something to do 

       return true; // do this if you dont want the tab to change 
      } 
      return false; 
     } 
    }); 
+0

소멸시 완벽하게 작동합니다. 그러나 은하계에서는 잘 작동하지 않습니다. 탭에는 3 가지 색상이 있습니다. 선택되지 않음 (검정색), 눌려지고 (하늘색) 및 선택됨 (파란색). 일단이 탭을 터치하면 파란색을 표시하는 대신 밝은 파란색이 표시되고 파란색은 표시되지 않습니다. 글쎄, 나는 탭에 테마를 넣을거야. 대단히 감사합니다. :) – Marc