2013-08-29 10 views
5

क्या कोई जानता है कि यह कैसे और क्यों होता है?पेजर और सूचीदृश्य देखें

java.lang.ClassCastException: android.support.v4.view.ViewPager$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams 
at android.widget.ListView.clearRecycledState(ListView.java:519) 
at android.widget.ListView.resetList(ListView.java:506) 
at android.widget.ListView.layoutChildren(ListView.java:1540) 
at android.widget.AbsListView.onLayout(AbsListView.java:2296) 
at android.view.View.layout(View.java:14055) 
at android.view.ViewGroup.layout(ViewGroup.java:4604) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1426) 
at android.view.View.layout(View.java:14055) 
at android.view.ViewGroup.layout(ViewGroup.java:4604) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
at android.view.View.layout(View.java:14055) 
at android.view.ViewGroup.layout(ViewGroup.java:4604) 
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1141) 
at android.view.View.layout(View.java:14055) 
at android.view.ViewGroup.layout(ViewGroup.java:4604) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1426) 
at android.view.View.layout(View.java:14055) 
at android.view.ViewGroup.layout(ViewGroup.java:4604) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
at android.view.View.layout(View.java:14055) 
at android.view.ViewGroup.layout(ViewGroup.java:4604) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1426) 
at android.view.View.layout(View.java:14055) 
at android.view.ViewGroup.layout(ViewGroup.java:4604) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
at android.view.View.layout(View.java:14055) 
at android.view.ViewGroup.layout(ViewGroup.java:4604) 
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1992) 
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1813) 
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1112) 
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4472) 
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
at android.view.Choreographer.doCallbacks(Choreographer.java:555) 
at android.view.Choreographer.doFrame(Choreographer.java:525) 
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
at android.os.Handler.handleCallback(Handler.java:615) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4898) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) 
at dalvik.system.NativeStart.main(Native Method) 

मैं क्या

  1. एक दृश्य पेजर

  2. के साथ मेरी sherlockfragmentactivity खोलने viewpager अंदर सूचीदृश्य जो मुझे दूसरी गतिविधि

  3. के पास ले जाएगा पर किसी आइटम को क्लिक था

    प्रेस बटन वापस जो हमें इसमें व्यूअर के साथ गतिविधि में वापस कर देगा।

उन तीन चरणों पर पहली कार्रवाई ठीक है, हालांकि जब मैं दूसरे चरण को दोहराता हूं और तीसरा चरण कई बार तेज़ करता हूं, तो कभी-कभी यह समस्या उत्पन्न होगी।

कोई विचार यह कैसे ठीक करें?

यह मेरा कोड है:

import com.actionbarsherlock.app.SherlockFragmentActivity; 
import com.viewpagerindicator.PageIndicator; 
import com.viewpagerindicator.TitlePageIndicator; 

import ex.godofsmith.helper.LocationService; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.view.ViewPager; 

public class RestoFragmentActivity extends SherlockFragmentActivity { 

    private Intent locationService; 

    private ViewPager _mViewPager; 
    private RestoVPAdapter _adapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_resto); 
     setTheme(R.style.Theme_Sherlock_Light_DarkActionBar); 

     //set location service 
     locationService = new Intent(this, LocationService.class); 
     //end location service 

     setUpView(); 
    } 

    @Override 
    public void onPause(){ 
     super.onPause(); 
     stopService(locationService); 
    } 

    @Override 
    public void onResume(){ 
     super.onResume(); 
     startService(locationService); 
    } 

    @Override 
    public void onDestroy(){ 
     super.onDestroy(); 
     //stopService(locationService); 
    } 

    private void setUpView(){ 

     _adapter = new RestoVPAdapter(getApplicationContext(),getSupportFragmentManager()); 

     _mViewPager = (ViewPager) findViewById(R.id.viewPager); 
     _mViewPager.setAdapter(_adapter); 
     _mViewPager.setCurrentItem(0); 
     _mViewPager.setOffscreenPageLimit(3); 

     PageIndicator mIndicator = (TitlePageIndicator)findViewById(R.id.indicator); 
     mIndicator.setViewPager(_mViewPager);  
    } 

} 

// ==================

import android.content.Context; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentStatePagerAdapter; 

public class RestoVPAdapter extends FragmentStatePagerAdapter { 
    //protected static final String[] CONTENT = new String[] { "Recommended", "Best", "Nearby", "Promo", "New"}; 
    protected static final String[] CONTENT = new String[] { "Nearby", "Promo", "New"}; 
    private Context _context; 
    private int mCount = CONTENT.length;  

    public RestoVPAdapter(Context context, FragmentManager fm) { 
     super(fm); 
     _context=context; 
    } 

    @Override 
    public Fragment getItem(int position) { 
     Fragment f = new Fragment(); 
     switch(position){ 
//  case 0: 
//   //f=RestoRecommendedActivity.newInstance(_context); 
//   break; 
//  case 1: 
//   //f=RestoBestActivity.newInstance(_context); 
//   break; 
     case 0: 
      f=RestoNearByActivity.newInstance(_context); 
      break; 
     case 1: 
      f=RestoPromoFragment.newInstance(_context); 
      break; 
     case 2: 
      f=RestoNewActivity.newInstance(_context); 
      break; 
     } 

     return f; 
    } 

    @Override 
    public int getCount() { 
     return mCount; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return RestoVPAdapter.CONTENT[position % CONTENT.length]; 
    } 

} 

// ===== ==== जिसमें दृश्य पेजर है गतिविधि के लिए लेआउट यह

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

    <com.viewpagerindicator.TitlePageIndicator 
     android:id="@+id/indicator" 
     android:padding="10dip" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent"   
     android:textColor="#FF000000" 
     app:footerColor="@color/greenslideup" 
     app:footerLineHeight="1dp" 
     app:footerIndicatorHeight="3dp" 
     app:footerIndicatorStyle="underline" 
     app:selectedColor="#FF000000" 
     app:selectedBold="true"/> 

    <ex.godofsmith.helper.CustomViewPager 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/viewPager" /> 

</LinearLayout> 

/==== दृश्य पेजर में मेरी टुकड़ा के लिए लेआउट ===

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

    <ListView 
     android:id="@+id/lvNearBy" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
    </ListView> 

</LinearLayout> 
+0

अगर मैं समझता हूं, समस्या हमेशा प्रकट नहीं होती है, तो कभी-कभी आप बटन दबाते हैं? –

+0

यह हमेशा होता है, लेकिन पहली बार इसे दबाएं नहीं। यह कभी-कभी दूसरे, तीसरे या अधिक पर होता है। –

+0

'ListView' में' ViewPager' दिखाने की कोशिश कर रहा है? –

उत्तर

0
java.lang.ClassCastException: android.support.v4.view.ViewPager$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams 

यह पंक्ति कहती है कि आपने शायद विजेट पर एक लेआउट रखा है और फिर इसे कास्ट नहीं किया जा सकता है। लेकिन मुझे नहीं पता कि यह पहली बार दबाए जाने पर क्यों काम करता है।

अपनी लेआउट फ़ाइल को संपादित करने का प्रयास करें और पुनः प्रयास करें।

+0

में यो शो ListView (ओं) को आजमाएं, मैं अपना पोस्ट अपडेट करने के लिए अपनी पोस्ट अपडेट करता हूं। मुझे कुछ भी संदिग्ध या गलत नहीं मिला। –

+1

किसी भी तरह से मैं इस समस्या को हल करने का प्रबंधन करता हूं। मुझे यकीन नहीं है कि मुझे कैसे लगता है कि मैंने इसे अपनी सूचीदृश्यों से फुटव्यू हटाकर हल किया है। –

16
मेरे मामले में

समस्या सूचीदृश्य के शीर्षक के लिए गलत रूट कंटेनर निर्धारित करने से संबंधित था, जबकि बढ़ा-चढ़ाकर:

गलत कोड के कारण त्रुटि:

transparentHeaderView = LayoutInflater.from(getActivity()).inflate(R.layout.transparent_header_view, activityContainer, false);

सही कोड:

transparentHeaderView = LayoutInflater.from(getActivity()).inflate(R.layout.transparent_header_view, listView, false);

@ कृष्णा दीवब्रता के संकेत के रूप में, उनकी समस्या शायद सूचीदृश्य

के पाद लेख के समान कुछ करने का कारण थी
+4

बस दिन बचा लिया – krossovochkin

संबंधित मुद्दे