2012-04-08 8 views
2

親レイアウトとしてタブビューを使用している新しいアプリケーションを開発しています。私は、アプリケーション内に3つのタブを表示するためにTabHostを使用しています。これらの各タブには、ListViewを含む個別のアクティビティがあります。これはうまくいきます。 ListView内のアイテムをクリックすると、現在、TabHostを残して、新しいアクティビティのフルスクリーンをロードします。私はTabHost内でこれらのアクティビティをロードしたいと思います。私はリストビューから別のアクティビティを呼び出した後、タブビューを保持したい。tabview内のリストアクティビティから新しいアクティビティを開始する方法

お返事ありがとうございます。ここにあなたの助けが必要な私のコードがあります。お客様、当社及び市 -

################ HelloTabWidget

//このクラスは、3タブとタブのビューが表示されます。

public class HelloTabWidget extends TabActivity { 
    //public class HelloTabWidget extends ActivityGroup { 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 

      Resources res = getResources(); 


     TabHost tabHost = getTabHost(); 
     TabHost.TabSpec spec; 
     Intent intent; 
     intent = new Intent().setClass(this, CustomerTabView.class); 
     spec = tabHost 
       .newTabSpec("Customer") 
       .setIndicator("Customer", 
         res.getDrawable(R.drawable.ic_tab_Customer)) 
       .setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, CompanyTabView.class); 
     spec = tabHost 
       .newTabSpec("Company") 
       .setIndicator("Company", 
         res.getDrawable(R.drawable.ic_tab_Company)) 
       .setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, CityTabView.class); 
     spec = tabHost 
       .newTabSpec("City") 
       .setIndicator("City", res.getDrawable(R.drawable.ic_tab_City)) 
       .setContent(intent); 
     tabHost.addTab(spec); 

     tabHost.setCurrentTab(0); 
    } 
} 
################顧客名のCustomerTabView

//このクラスを表示リストビュー。リスト内の任意の項目をクリックすると、同じタブの表示を維持した顧客詳細ページが開きます。

public class CustomerTabView extends ListActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     String[] category = getResources().getStringArray(
       R.array.category_array); 
     setListAdapter(new ArrayAdapter<String>(this, R.drawable.list_items, 
       category)); 
     ListView lv = getListView(); 
     lv.setTextFilterEnabled(true); 

     lv.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 

       //Need this logic where I can retain the tab view and call new activity class for customerdetails view.     

       Intent intent; 
       intent = new Intent(CustomerTabView.this, 
         C_DetailActivity.class); 
       startActivity(intent); 
       finish(); 
      } 

     }); 
    } 
} 
################ C_DetailActivity

customertabviewから任意の項目をクリックするだけで、このアクティビティクラスは、顧客の詳細を示してコールを取得します。

public class C_DetailActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     TextView textview = new TextView(this); 
     textview.setText("This is the Customer Details view"); 
     setContentView(textview); 
    } 
} 

C_DetailActivityクラスを呼び出した後、タブビューが消えます。メインのタブビューを保持したい は、だから私はタブ表示を保持し、customerdetailsのための新しいアクティビティのクラスを呼び出すことができ、このロジックをテストが、このような何かが動作するはずない

+0

簡単にしてください。私はこれをしません。 – Blundell

+0

コードを投稿してください。これは簡単な実装でなければなりません。 –

+0

他に何が必要ですか?あなたはその意志を持っていますか? –

答えて

1
ListView lv = (ListView) findViewById(R.id.myListView); 
lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView parent, View v, int position, long id) { 
     LocalActivityManager manager = getLocalActivityManager(); 
     String currentTag = tabHost.getCurrentTabTag(); 
     manager.destroyActivity(currentTag, true); 
     manager.startActivity(currentTag, new Intent(this, newClass.class)); 
    } 
}); 

を表示する必要があります。もしそうでなければ、私はそれを修正するのを手伝ってくれるでしょう。

+0

ありがとう、私は上記の – user1320395

+0

の上に私のコードを追加しました。そして、OnItemClickListenerを私のものに置き換えるとうまくいきますか? –

+0

getLocalActivityManagerはListActivityでは機能しません。詳細ページでタブビューを保持する方法 – user1320395

関連する問題