2012-04-13 17 views
1

私は検索しているので、私が持っている問題の近くに何かを見つけるように見えるかもしれません。 は私がenter image description hereTabHostを使用したAndroid Dashboardのレイアウト

この

はすべてそれがTabhostが定義され、以下のように(私がしている仕事持って

正しく何がやりたいことされて働いているダッシュボードのレイアウトを持っているが、私は、セットアップクラスに持っていましたアクションバーナビゲーションを壊すTabActivity)

enter image description here

を拡張タブが正しく切り替えが、それは私が上のボタンのいずれかを使用することはできませんアクションバー、およびその引っ張っていない情報が正しくそれのように正しく

enter image description here

上記の作品でなければなりません。だから私は私の質問は、私は正しく私のクラスにTabHostを追加することができますまた、拡張またはダッシュボードのコードを実装することですか?私は、TabActivityが運行なしでDashboardを実装する拡張を試みました。ここで

は私のコードは、これまでDashboard.java

ある

package com.ondrovic.bbym; 

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.content.res.Configuration; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.LinearLayout; 
import android.widget.TextView; 

public abstract class Dashboard extends Activity { 
public static final boolean usePrettyGoodSolution = false; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 

public void onDestroy() { 
    super.onDestroy(); 
} 

public void onPause() { 
    super.onPause(); 
} 

public void onRestart() { 
    super.onRestart(); 
} 

public void onResume() { 
    super.onResume(); 
} 

public void onStart() { 
    super.onStart(); 
} 

public void onStop() { 
    super.onStop(); 
} 

public void onClickHome(View v) { 
    goHome(this); 
} 

public void onClickUpdate(View v) { 
    //startActivity(new Intent(getApplicationContext(), Update.class)); 
} 

public void onClickAbout(View v) { 
    //startActivity(new Intent(getApplicationContext(), About.class)); 
} 

public void goHome(Context context) { 
    final Intent intent = new Intent(context, Home.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    context.startActivity(intent); 
} 

@Override 
public void setContentView(int layoutID) { 
    if (!usePrettyGoodSolution) { 
     super.setContentView(layoutID); 
     return; 
    } 

    Configuration c = getResources().getConfiguration(); 
    int size = c.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK; 
    boolean isLarge = (size == Configuration.SCREENLAYOUT_SIZE_LARGE); 
    boolean isXLarge = (size == Configuration.SCREENLAYOUT_SIZE_XLARGE); 
    boolean addFrame = isLarge || isXLarge; 

    // if (isLarge) System.out.println ("Large screen"); 
    // if (isXLarge) System.out.println ("XLarge screen"); 

    int finalLayoutId = addFrame ? R.layout.large : layoutID; 
    super.setContentView(finalLayoutId); 

    if (addFrame) { 
     LinearLayout frameView = (LinearLayout) findViewById(R.id.frame); 
     if (frameView != null) { 

      // If the frameView is there, inflate the layout given as an 
      // argument. 
      // Attach it as a child to the frameView. 
      LayoutInflater li = ((Activity) this).getLayoutInflater(); 
      View childView = li.inflate(layoutID, null); 
      if (childView != null) { 
       LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
         ViewGroup.LayoutParams.MATCH_PARENT, 
         ViewGroup.LayoutParams.MATCH_PARENT, 1.0F); 
       frameView.addView(childView, lp); 
       // childView.setBackgroundResource (R.color.background1); 
      } 

     } 
    } 
} 

public void setTitleFromActivityLabel(int textViewID) { 
    TextView tv = (TextView) findViewById(textViewID); 
    if (tv !=null) { 
     tv.setText(getTitle()); 
    } 
} 

} 

Individual.java

package com.ondrovic.bbym; 

import android.app.TabActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.TabHost; 
import android.widget.TabHost.TabSpec; 

public class Individual extends TabActivity { 
public void onCreate(Bundle savedSate) { 
    super.onCreate(savedSate); 
    setContentView(R.layout.individual); 

    TabHost tabHost = getTabHost(); 
    TabSpec attspec = tabHost.newTabSpec("ATT"); 
    attspec.setIndicator("AT&T", getResources().getDrawable(R.drawable.icons_att_tab)); 
    Intent attIntent = new Intent(this, Individual_ATT.class); 
    attspec.setContent(attIntent); 

    TabSpec sprspec = tabHost.newTabSpec("SPRINT"); 
    sprspec.setIndicator("SPRINT", getResources().getDrawable(R.drawable.icons_sprint_tab)); 
    Intent sprIntent = new Intent(this, Individual_SPRINT.class); 
    sprspec.setContent(sprIntent); 

    TabSpec vzwspec = tabHost.newTabSpec("VERIZON"); 
    vzwspec.setIndicator("VERIZON", getResources().getDrawable(R.drawable.icons_verizon_tab)); 
    Intent vzwIntent = new Intent(this, Individual_VERIZON.class); 
    vzwspec.setContent(vzwIntent); 

    tabHost.addTab(attspec); 

    tabHost.addTab(sprspec); 

    tabHost.addTab(vzwspec); 
} 
} 

ここがあれば私のindividual.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@color/background1" 
android:orientation="vertical" > 

<include layout="@layout/title_bar" /> 
<include layout="@layout/tabs" /> 
</LinearLayout> 

です他のコードt帽子はポストになる必要があります私に教えてくださいと助けてくれてありがとう

+0

:-)取り組んでいる結果があることに注意してくださいますAndroidのタブを使用するためにTabActivityを拡張する必要はありません。彼らはあなたが欲しいものに似た何かを行うioschedアプリのソースコードを見てみましょう。 – Cristian

+0

私はぼんやりとしたものを見てきましたが、今は私のレベルよりも少し上ですが、情報に感謝します – ondrovic

答えて

0

私はそれを以下のようにして考え出しました。ここでのより良い方法はおそらくあるにもかかわらず、私は

Individual.java

package com.ondrovic.bbym; 

import android.app.LocalActivityManager; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.TabHost; 
import android.widget.TabHost.TabSpec; 

public class Individual extends Dashboard { 
    TabHost mTabs; 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.individual); 
    setTitleFromActivityLabel(R.id.title_text); 

    mTabs = (TabHost) findViewById(android.R.id.tabhost); 
    LocalActivityManager mLocalActivityManager = new LocalActivityManager(this, false); 
    mLocalActivityManager.dispatchCreate(savedInstanceState); 
    mTabs.setup(mLocalActivityManager); 

    TabSpec attspec = mTabs.newTabSpec("ATT"); 
    attspec.setIndicator("AT&T", getResources().getDrawable(R.drawable.icons_att_tab)); 
    Intent attIntent = new Intent(this, Individual_ATT.class); 
    attspec.setContent(attIntent); 

    TabSpec sprintspec = mTabs.newTabSpec("SPRINT"); 
    sprintspec.setIndicator("SPRINT", getResources().getDrawable(R.drawable.icons_sprint_tab)); 
    Intent sprintIntent = new Intent(this, Individual_SPRINT.class); 
    sprintspec.setContent(sprintIntent); 

    TabSpec verizonspec = mTabs.newTabSpec("VERIZON"); 
    verizonspec.setIndicator("VERIZON", getResources().getDrawable(R.drawable.icons_verizon_tab)); 
    Intent verizonIntent = new Intent(this, Individual_ATT.class); 
    verizonspec.setContent(verizonIntent); 

    mTabs.addTab(attspec); 
    mTabs.addTab(sprintspec); 
    mTabs.addTab(verizonspec); 
} 
} 

を持っているものである。ここにすべてが

enter image description here

関連する問題