2013-10-31 3 views
4

내 안드로이드 앱에는 스 와이프 가능한 탭 레이아웃이 있습니다. 새로운 불평과 이전 불만의 두 가지 탭이 있습니다. 불만 탭을 클릭하면 NewComplain.java를 시작해야합니다.Android : 스 와이프 가능한 탭 레이아웃에서 활동 전환하기

NewComplain 클래스

public class NewComplain extends SherlockFragmentActivity implements View.OnClickListener { 
    private int Year; 
    private int Month; 
    private int Day; 
    private static final int DATE_DIALOG_ID = 1; 
    private View viewLoad; 
    private TextView heading, date; 
    private Spinner spiComplain, spiProduct; 
    private EditText description, contInfo; 
    private Button btnDate; 
    private ArrayAdapter<String> complainAdapter, prodAdapter; 
    private ArrayList<String> lstComplain = new ArrayList<String>(); 
    private ArrayList<String> lstProdNames = new ArrayList<String>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     viewLoad = LayoutInflater.from(NewComplain.this).inflate(
       R.layout.new_complain, null); 
     setContentView(viewLoad);      
    } 
} 

이 ID 내 TabsPagerAdapter 클래스 : 여기 내 NewComplain 클래스 코드 세그먼트입니다.

package xont.virtusel.v4.controller.sale; 

    import android.content.Intent; 
    import android.support.v4.app.Fragment; 
    import android.support.v4.app.FragmentManager; 
    import android.support.v4.app.FragmentPagerAdapter; 

    public class TabsPagerAdapter extends FragmentPagerAdapter { 

    public TabsPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int index) { 

     switch (index) { 
     case 0: 

     case 1: 

     } 

     return null; 
    } 

    @Override 
    public int getCount() { 
     // get item count - equal to number of tabs 
     return 2; 
    } 

} 

는 그리고 이것은 내 주요 활동 클래스입니다.

package xont.virtusel.v4.controller.sale; 

    import xont.virtusel.v4.controller.R; 
    import android.app.ActionBar; 
    import android.app.ActionBar.Tab; 
    import android.app.FragmentTransaction; 
    import android.os.Bundle; 
    import android.support.v4.app.FragmentActivity; 
    import android.support.v4.view.ViewPager; 

    public class CustomerComplainActivity extends FragmentActivity implements ActionBar.TabListener { 

    private ViewPager viewPager; 
    private TabsPagerAdapter mAdapter; 
    private ActionBar actionBar; 
    private String[] tabs = { "New Complain", "Previous Complains" }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // Initialization 
     viewPager = (ViewPager) findViewById(R.id.pager); 
     actionBar = getActionBar(); 
     mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); 

     viewPager.setAdapter(mAdapter); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
     //actionBar.setHomeButtonEnabled(true); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     //actionBar.setDisplayShowHomeEnabled(false); 
     //actionBar.setDisplayShowTitleEnabled(false); 

     // Adding Tabs 
     for (String tab_name : tabs) { 
      actionBar.addTab(actionBar.newTab().setText(tab_name) 
        .setTabListener(this)); 
     } 

     /** 
     * on swiping the viewpager make respective tab selected 
     * */ 
     viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

      @Override 
      public void onPageSelected(int position) { 
       // on changing the page 
       // make respected tab selected 
       actionBar.setSelectedNavigationItem(position); 
      } 

      @Override 
      public void onPageScrolled(int arg0, float arg1, int arg2) { 
      } 

      @Override 
      public void onPageScrollStateChanged(int arg0) { 
      } 
     }); 
    } 

    @Override 
    public void onTabReselected(Tab tab, FragmentTransaction ft) { 
    } 

    @Override 
    public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     // on tab selected 
     // show respected fragment view 
     viewPager.setCurrentItem(tab.getPosition()); 
    } 

    @Override 
    public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
    } 

} 

이 TabsPagerAdapter 클래스에 전환 작동 명령문을 어떻게 추가해야합니까? 나는 의도를 사용했다. 하지만 효과가 없습니다. 누구든지이 문제를 명확하게 설명 할 수있을 정도로 친절하십니까? 고맙습니다 미리

답변

1

정확히 무엇이 문제입니까? public Fragment getItem() 방법

@Override 
    public Fragment getItem(int index) { 

     switch (index) { 
     case 0: 
      return new NewComplain(); 
     case 1: 
      //return some other class 
     } 

     return null; 
    } 

에 TabsPagerAdapter에와 NewComplain 클래스

0

당신은 조각이 아닌 활동을 추가하기위한 생성자를 만듭니다

당신이 Fragment 새를 시작할 수없는 경우,이 시도. 탭 리스너에는 FragmentTransaction이 주어져야합니다.이 버튼을 누르면 눌려진 탭과 관련하여 표시 할 프래그먼트를 업데이트해야합니다.

또한 생성시 조각 내에서 팽창하지 마십시오.보기에서 생성하십시오.

관련 문제