2013-03-06 2 views
1

화면 하단에 2 개의 탭이있는 화면이 있습니다. 앱을 실행하면 자동으로 첫 번째 탭이 활성화되고 해당 화면과 관련된 활동이 표시됩니다 (화면 1). 그런 다음 사용자가 두 번째 탭을 클릭하면 다른 활동 (화면 2)이 열립니다.탭 첫 번째 화면과는 무관 한 탭

요구 사항 : 화면 1을 표시하는 대신 앱로드시 화면 0을 표시하고 싶습니다.이 시점에서 두 탭은 모두 비활성화 상태 (눌리지 않은 상태) 여야합니다. 사용자가 탭을 클릭하면 해당 화면 만 열립니다 (화면 1 및 화면 2).

어떻게 만드시겠습니까? 그냥 새로운 활동, 화면 0을 만들고, 그것이 당신의 탭 활동, 화면 1 화면이 사용 의도를 시작할 수

public class TabBarActivity extends TabActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.main); 

     // Your Tab Titles 
     String tab_title[] = { "Screen 1", "Screen 2"}; 

     // Your Tab Drawables for their states 
     int tab_drawables[] = { R.drawable.tab_home_custom, 
       R.drawable.tab_balance_custom}; 

     // Your Tab Activities 
     Object tab_act[] = { TabB.class,TabC.class}; 

     ///TabHost setup 
     final TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost); 
     tabHost.setup(); 

     TabSpec tab_spec ; 

     for (int i = 0; i < tab_act.length; i++) { 

       tab_spec = tabHost.newTabSpec(tab_title[i]); 
       tab_spec.setIndicator(tab_title[i], 
         getResources().getDrawable(tab_drawables[i])); 
       tab_spec.setContent(new Intent(this, (Class<?>) tab_act[i])); 
       tabHost.addTab(tab_spec); 

     } 
     tabHost.setCurrentTab(0); 
    } 

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      TabBarActivity.this.finish(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 
} 

Screen Shot

답변

0

:

내가 사용하는 코드는 아래와 같습니다 . 그런 다음 매니 페스트 파일을 변경하여이 코드를 활동 decleration에 추가하여 새 활동을 실행 프로그램으로 표시하도록 할 수 있습니다.

<intent-filter> 
    <action android:name="android.intent.action.MAIN"/> 
    <category android:name="android.intent.category.LAUNCHER"/> 
</intent-filter> 

또한 현재 탭 활동에서 해당 코드를 제거해야합니다.

0

이것은 TabActivity가 일반적으로 지원하는 것이 아닙니다.

당신은 "더미"탭을 추가하여 원하는 효과를 달성 할 수있을 것 :이 탭 표시 줄의 빈 탭 버튼을 만듭니다 경우

public class TabBarActivity extends TabActivity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.main); 

    // Your Tab Titles 
    String tab_title[] = { "", "Screen 1", "Screen 2"}; 

    // Your Tab Drawables for their states 
    int tab_drawables[] = { R.drawable.tab_home_custom, 
      R.drawable.tab_balance_custom}; 

    // Your Tab Activities 
    Object tab_act[] = {Activity.class, TabB.class,TabC.class}; 

    ///TabHost setup 
    final TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost); 
    tabHost.setup(); 

    TabSpec tab_spec ; 

    for (int i = 0; i < tab_act.length; i++) { 

      tab_spec = tabHost.newTabSpec(tab_title[i]); 
      if(i>0) tab_spec.setIndicator(tab_title[i], 
        getResources().getDrawable(tab_drawables[i])); 
      tab_spec.setContent(new Intent(this, (Class<?>) tab_act[i])); 
      tabHost.addTab(tab_spec); 

    } 
    tabHost.setCurrentTab(0); 
} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     TabBarActivity.this.finish(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

}

잘 모르겠어요를 난 당신이 응용 프로그램의 로고가 시작 화면을한다고 가정

+0

를 만들 것입니다

<intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> 

TabBarActivity 내에서 해당 태그를하는 대신이 활동의 ​​활동 태그에 다음 태그를 추가합니다. – MidhunVP

0

하지만, 다른 활동을 만들고 해당

public class splash2 extends Activity{ 


    protected boolean _active = true; 
    protected int _splashTime = 2000; 
    Intent intent; 
    Runnable r; 
    Handler handler; 
    /** Called when the activity is first created. */ 

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_MENU) { 
      getWindow().setSoftInputMode(
        WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splashlayout2); 

     // startActivity(new Intent(splash2.this,splash1.class)); 
     // thread for displaying the SplashScreen 

     handler = new Handler(); 

     r=new Runnable() { 
      public void run() { 

       intent = new Intent(splash2.this, TabBarActivity .class); 
       //intent.setClass(); 
       startActivity(intent); 

       finish(); 
      } 

     }; 
     handler.postDelayed(r, _splashTime); 

    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
      handler.removeCallbacks(r); 
      intent = new Intent(); 
      intent.setClass(splash2.this, Main_menu.class); 
      startActivity(intent); 
      overridePendingTransition(R.anim.slide_in_left2, R.anim.slide_out_left2); 
      finish(); 
     } 
     return true; 
    } 

    @Override 
    public void onBackPressed() { 
     // TODO Auto-generated method stub 

    } 
} 
에서 tabActivity로 이동합니다

및 그것은이 시작 화면에게 그것은 나를 위해 작동하지 않는 기본 활동

+0

다른 로그인 화면에서만 tabactivity 화면에 도달했습니다. 그럴 경우 어떻게해야합니까? – MidhunVP

+0

정확히 원하는 화면을 게시 할 수 있습니다 –

+0

질문을 편집하여 스크린 샷을 추가했습니다. 앱이이 특정 화면에 도달하면 화면 0이 표시되어야합니다. 사용자가 첫 번째 탭을 클릭하면 화면 1 만 표시됩니다. – MidhunVP

관련 문제