2014-02-22 30 views
0

我使用尋呼機在我的應用程序中滑動標籤條,我想改變標籤和尋呼機與按鈕事件我該如何做? 我用這個代碼,但它`不行android:改變選項卡和尋呼機與按鈕事件在尋呼機滑動標籤條

public class CheckoutMethod_Fragment extends Fragment { 

private static final String ARG_POSITION = "position"; 

private int position; 
private Button btn_continue; 
ViewPager pager; 


public static CheckoutMethod_Fragment newInstance(int position) { 
    CheckoutMethod_Fragment f = new CheckoutMethod_Fragment(); 
    Bundle b = new Bundle(); 
    b.putInt(ARG_POSITION, position); 
    f.setArguments(b); 
    return f; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    position = getArguments().getInt(ARG_POSITION); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    final View v = inflater.inflate(R.layout.activity_checkout_method__fragment, 
      container, false); 

    final ViewPager pager = (ViewPager) v.findViewById(R.id.pager); 
    pager.setAdapter(new ViewPagerAdapter_PlaceCartOrder(getFragmentManager())); 

    btn_continue = (Button) v.findViewById(R.id.button_continue); 
    btn_continue.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      // TODO Auto-generated method stub 
      //Replace right fragment with another fragment 

      pager.setCurrentItem(2); 
     } 
    }); 
    return v; 
}} 

,這是ViewPagerAdapter_PlaceCartOrder

public class ViewPagerAdapter_PlaceCartOrder extends FragmentPagerAdapter { 

private final String[] TITLES = { "Checkout Method","bbbb", "aaa ","ggg", "Order Review" }; 

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

@Override 
public CharSequence getPageTitle(int position) { 
    return TITLES[position]; 
} 

@Override 
public int getCount() { 
    return TITLES.length; 
} 

@Override 
public Fragment getItem(int position) { 

    switch (position) { 

    case 0: 
     return CheckoutMethod_Fragment.newInstance(position); 
    case 1: 
     return CustomerInformation_Fragment.newInstance(position); 
    case 2: 
     return BillingInformation_Fragment.newInstance(position); 
    case 3: 
     return ShippingInformation_Fragment.newInstance(position); 
    case 4: 
     return ShippingMethod_Fragment.newInstance(position); 
    case 5: 
     return PaymentInformation_Fragment.newInstance(position); 
    case 6: 
     return OrderReview_Fragment.newInstance(position); 
    case 7: 
     return CheckoutMethod_Fragment.newInstance(position); 
    case 8: 
     return CheckoutMethod_Fragment.newInstance(position); 
    case 9: 
     return CheckoutMethod_Fragment.newInstance(position); 
    default: 
     return SuperAwesomeCardFragment.newInstance(6000); 
    } 

    // return SuperAwesomeCardFragment.newInstance(position); 
}} 

public class PlaceOrderActivity extends FragmentActivity { 

ViewPager pager; 

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

    Typeface typeface = Typeface.createFromAsset(getAssets(), 
      "fonts/Yekan.ttf"); 

    // Initialize the ViewPager and set an adapter 
    pager = (ViewPager) findViewById(R.id.pager); 
    pager.setAdapter(new ViewPagerAdapter_PlaceCartOrder(getSupportFragmentManager())); 
    //pager.setCurrentItem(7); 

    // Bind the tabs to the ViewPager 
    PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); 
    tabs.setViewPager(pager); 
    tabs.setIndicatorColor(Color.rgb(225, 19, 18)); 
    tabs.setIndicatorHeight(3); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    //getMenuInflater().inflate(R.menu.place_order, menu); 
    return true; 
} 

public void ChangeFragment(){ 
    pager.setCurrentItem(2); 
}} 

回答

1

有2個問題,你的代碼:

  1. onCreateView中的final View v被作爲onClick方法的參數傳遞的View v所遮蔽。
  2. 您需要設置呼叫器才能使用它。目前,您正在使用onClick方法進行設置。您需要將尋呼機設置代碼移至onCreateView方法。
+0

我將設置代碼移動到onCreateView,但它返回此行的錯誤:pager.setAdapter(new ViewPagerAdapter(getFragmentManager())); – mahdi

+0

如何解決問題的第一個問題?\ – mahdi

+1

如果您已將尋呼機設置移至'onCreateView',您可能不需要解決第一個問題。但是,如果你堅持,將'View v'中的參數重命名爲'View view'將會起到一定的作用。如果您可以發佈新代碼,則可能會指出錯誤。 – Rajesh