2012-10-22 4 views
-1

저는 프로젝트에서 작업 중입니다. 상단에서 다른 탭을 선택하여 단일 창에 다른보기를 표시해야합니다.상단에있는 탭을 사용하여 다른 활동 표시

은이 주제를 많이 검색 좀,하지만 난 그렇게 어려운 그것을 검색 찾는이보기에 사용되는 정확한 어떤 용어를 잘 모릅니다. 내가 this

this 같은 몇 가지 예를 통해 갈하지만 난 대답을 원하는 가져올 수 없습니다

Tab Activities

나는 그냥이 같은 뷰에서 일하고 있습니다.

이보기를 구현하도록 유도 할 수있는 유용한 링크가 도움이 될 것입니다.

+0

actionBar 또는 actionBarSherlock은 어떻습니까? – Krishnabhadra

+1

[시도 했습니까?] (http://www.androidhive.info/2011/08/android-tab-layout-tutorial/) 및 [this] (http://www.powenko.com/en/?p = 2121) – Praveenkumar

+0

@Krishnabhadra 그게 뭐야?! –

답변

1

는 안드로이드에 TabHost 종류의 많은이 있습니다. 기본값으로 사용하거나 필요에 따라 사용자 정의 할 수 있습니다.

단순히 this 예를 보라. 그것은 당신에게 당신의 요구에 따라 같은 TabHost 제공 안드로이드 tabHost 중 하나가 코드를 아래에서 살펴 보자 기본 제공 -

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout android:orientation="vertical" 
     android:layout_width="fill_parent" android:layout_height="fill_parent"> 
     <TabWidget android:id="@android:id/tabs" 
      android:layout_width="fill_parent" android:layout_height="wrap_content" /> 
     <FrameLayout android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" android:layout_height="fill_parent"> 
     </FrameLayout> 
    </LinearLayout> 
</TabHost> 

을 main.xml에를 그리고, 또한 here를 살펴 .

2

tab_host.xml

<?xml version="1.0" encoding="utf-8"?> 
<TabHost 
android:id="@android:id/tabhost" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="#0F5EC6" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/back" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dp" 
      android:text="Back" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="80dp" 
      android:gravity="center" 
      android:text="ThirdEye" 
      android:textSize="20dp" 
      android:textStyle="bold" /> 

     <Button 
      android:id="@+id/logout" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="30dp" 
      android:gravity="center" 
      android:text="Logout" /> 
    </LinearLayout> 

    <TabWidget 
     android:id="@android:id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

    <FrameLayout 
     android:id="@android:id/tabcontent" 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" /> 
</LinearLayout> 

tabactivity

public class PostTabActivity extends TabActivity implements TabHost.OnTabChangeListener { 
private TabHost mTabHost; 
Button back,logout; 
private String sessid,Name; 
double lati,longi; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    final Intent intent = getIntent(); 
    Bundle extras = getIntent().getExtras(); 
    if (extras != null) { 
     sessid = extras.getString("sid"); 
     lati = extras.getDouble("EXTRA_latitude"); 
     longi = extras.getDouble("EXTRA_longitude"); 
     Name= extras.getString("NICK_NAME"); 
     System.out.println("........................"+lati+".................."+longi); 
    } 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.tab_host); 
    logout = (Button) findViewById(R.id.logout); 
    logout.setOnTouchListener(new OnTouchListener() 
    { 

     public boolean onTouch(View v, MotionEvent event) { 
      switch(event.getAction()) 
      { 
      case MotionEvent.ACTION_DOWN: 
       break; 
      case MotionEvent.ACTION_UP: 
      new Logout(PostTabActivity.this,sessid); 
       //finish(); 
       break; 
      } 
      return true; 
     } 
    }); 
    back= (Button) findViewById(R.id.back); 
    back.setOnTouchListener(new OnTouchListener() 
    { 

     public boolean onTouch(View v, MotionEvent event) { 
      switch(event.getAction()) 
      { 
      case MotionEvent.ACTION_DOWN: 
       break; 
      case MotionEvent.ACTION_UP: 
       Intent myIntent = new Intent(PostTabActivity.this, GetPost.class); 
       myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       myIntent.putExtra("EXTRA_SESSION_ID", sessid); 
       myIntent.putExtra("EXTRA_latitude",lati); 
       myIntent.putExtra("EXTRA_longitude", longi); 
       myIntent.putExtra("NICK_NAME", Name); 
       startActivity(myIntent); 
       finish(); 
       break; 
      } 
      return true; 
     } 


    } 
     ); 


    mTabHost = getTabHost(); 
    mTabHost.setOnTabChangedListener(this); 

    /*Tab One */ 

    Intent mIntent= new Intent("proto.thirdeye.PostText"); 
    mIntent.setClass(this, PostText.class); 
    mIntent.putExtra("sid",sessid); 
    mIntent.putExtra("EXTRA_latitude",lati); 
    mIntent.putExtra("EXTRA_longitude", longi); 
    mIntent.putExtra("NICK_NAME", Name); 

    mTabHost.addTab(mTabHost.newTabSpec("text1") 
      .setIndicator("Text", 
        getResources().getDrawable(R.drawable.image)) 
      .setContent(mIntent)); 

    /*Tab Two */ 

    Intent mIntent1 = new Intent("proto.thirdeye.PostImage"); 
    mIntent1.setClass(this, PostImage.class); 
    mIntent1.putExtra("sid",sessid); 
    mIntent1.putExtra("EXTRA_latitude",lati); 
    mIntent1.putExtra("EXTRA_longitude", longi); 
    mIntent1.putExtra("NICK_NAME", Name); 
    mTabHost.addTab(mTabHost.newTabSpec("image1") 
      .setIndicator("Image", 
        getResources().getDrawable(R.drawable.image)) 
      .setContent(mIntent1)); 


    /*Tab Three */ 

    Intent mIntent2 = new Intent("proto.thirdeye.PostVideo"); 
    mIntent2.setClass(this, PostVideo.class); 
    mIntent2.putExtra("sid",sessid); 
    mIntent2.putExtra("EXTRA_latitude",lati); 
    mIntent2.putExtra("EXTRA_longitude", longi); 
    mIntent2.putExtra("NICK_NAME", Name); 
    mTabHost.addTab(mTabHost.newTabSpec("video") 
      .setIndicator("Video", 
        getResources().getDrawable(R.drawable.image)) 
      .setContent(mIntent2)); 

    mTabHost.setCurrentTab(0); 
} 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     onBackPressed(); 

    } 

    return super.onKeyDown(keyCode, event); 
} 

public void onBackPressed() { 
    Intent myIntent = new Intent(PostTabActivity.this, GetPost.class); 
    myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    myIntent.putExtra("EXTRA_SESSION_ID", sessid); 
    myIntent.putExtra("EXTRA_latitude",lati); 
    myIntent.putExtra("EXTRA_longitude", longi); 
    myIntent.putExtra("NICK_NAME", Name); 
    startActivity(myIntent); 
    finish(); 
    return; 
} 
public void onTabChanged(String tabId) { 
    // TODO Auto-generated method stub 
    Log.i("Aru","     "+tabId); 
    Activity activity = getLocalActivityManager().getActivity(tabId); 
    if (activity != null) { 
     activity.onWindowFocusChanged(true); 
    } 
} 
@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 
    // Save UI state changes to the savedInstanceState. 
    // This bundle will be passed to onCreate if the process is 
    // killed and restarted. 
    savedInstanceState.putString("sid",sessid); 
    savedInstanceState.putDouble("EXTRA_latitude",lati); 
    savedInstanceState.putDouble("EXTRA_longitude",longi); 
    savedInstanceState.putString("NICK_NAME", Name); 
    // etc. 
} 
@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    // Restore UI state from the savedInstanceState. 
    // This bundle has also been passed to onCreate. 
    sessid = savedInstanceState.getString("sid"); 
    lati = savedInstanceState.getDouble("EXTRA_latitude"); 
    longi = savedInstanceState.getDouble("EXTRA_longitude"); 
    Name = savedInstanceState.getString("NICK_NAME"); 
} 
@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    //MyApplication.activityPaused(); 
} 
@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    //MyApplication.activityResumed(); 
} 
} 

당신은 PostImage, PostVideo, PostText에 대한 자신의 레이아웃을 정의 할 수 있습니다. 필요에 따라 사용자 정의하십시오.

관련 문제