2013-07-31 2 views
0

동적으로 탭을 추가하는 탭 호스트가 있습니다. 내 문제는 선택한 다른 탭 값을 사용하여 한 탭의 데이터를 업데이트하는 것입니다.TabHost 컨트롤의 활동간에 데이터 전달

예 : TabHost 활동 페이지에 '검색 & 필터'라는 두 개의 탭과 인 텐트가 추가되었습니다. 필터 탭에서 '& 장비'와 같은 회 전자에서 일부 값을 선택할 때 필터 탭에서 지정된 선택 항목으로 검색 탭 목록보기를 업데이트하려고합니다.

샘플 코드를 첨부했습니다. 친절하게 그것을 확인하고 같은 것을 제안 해주세요.

TabHost의 활동 :

public class TabSearch : TabActivity 
{ 
    protected override void OnCreate(Bundle bundle) 
    { 
      base.OnCreate(bundle); 
      SetContentView(Resource.Layout.Search_WOTab); 

      TabHost.TabSpec tspec; 
      Intent intent; 
      intent = new Intent(this, typeof(WOSearch)); 
      intent.AddFlags(ActivityFlags.NewTask); 
      tspec = TabHost.NewTabSpec("Search"); 
      tspec.SetIndicator("Search", Resources.GetDrawable(Resource.Drawable.Search)); 
      tspec.SetContent(intent); 
      TabHost.AddTab(tspec); 

      intent = new Intent(this, typeof(WOFilter)); 
      intent.AddFlags(ActivityFlags.NewTask); 
      tspec = TabHost.NewTabSpec("Filter"); 
      tspec.SetIndicator("Filter", Resources.GetDrawable(Resource.Drawable.Filter)); 
      tspec.SetContent(intent); 
      TabHost.AddTab(tspec); 

      TabHost.TabChanged += (sender, e) => 
      { 
       Spinner workorder = FindViewById<Spinner>(Resource.Id.sp_site); 
       object Data; 
       //Here always showing null to spinner control 
       if (workorder!=null) 
        Data = workorder.SelectedItem; 
       Toast.MakeText(this, TabHost.CurrentTab.ToString(), ToastLength.Short).Show(); 
      }; 
    } 
} 
+0

문제와 관련이없는 코드는 모두 삭제하십시오. 너무 많습니다. –

+0

샘플 코드를 업데이트했습니다. 친절하게 확인하십시오. – Kathir

+0

한 번에 하나의 탭 만 표시됩니까? – baramuse

답변

0

내가 할 것이다 일 : WOFilter 탭에서

  1. 을 :

    • 당신은 당신이 app_wide var에 업데이트 요소가 (정적 선택 sharedpref, database)를 "wo_filter_value"라고합시다.

      • 만 (의가 필요한 것 "에서 onCreate"방법에 초기화 코드를 수행합니다 그 방법은 WOFilter 활동은 WOSearch 탭에서 WOSearch 활동
    • 에 대해 알 필요가 없습니다

    • 업데이트 된 "wo_filter_value"를 읽고 이에 따라 필터링하여 "onResume"메서드의 목록 표시 부분을 수행합니다.

는 다음과 같이 하나 개의 탭이 동시에 표시되어, 당신의 활동은 항상 다른 탭에서 필터를 변경 한 후에 목록을 다시 표시하기 전에 "OnResume"기능을 통해 이동해야합니다.

+0

예. 좋은 생각입니다. 하지만 내 시나리오 중 하나에서 나는 7 탭을 가지고 많은 컨트롤을해야합니다. 복잡한 데이터를 탭에 어떻게 공유 할 수 있습니까? – Kathir