2013-07-08 10 views
8

तो मुझे FinderActivity.class में एडाप्टर निष्पादित करते समय यह त्रुटि मिलती है।

public class FinderListAdapter extends BaseAdapter 
{ 
    Context context; 
    LayoutInflater inflater; 
    private int[]icons = 
    { 
     R.drawable.icon_service_center, 
     R.drawable.icon_car_showroom, 
     R.drawable.icon_radar, 
     R.drawable.icon_office 
    }; 
    private List<String>options = null; 

    public FinderListAdapter(Context paramContext, List<String>paramList) 
    { 
     this.context = paramContext; 
     this.options = paramList; 
     this.inflater = LayoutInflater.from(paramContext); 
    } 

    @Override 
    public int getCount() 
    { 
     return this.options.size(); 
    } 

    @Override 
    public Object getItem(int paramInt) 
    { 
     return this.options.get(paramInt); 
    } 

    @Override 
    public long getItemId(int paramInt) 
    { 
     return paramInt; 
    } 


    @Override 
    public View getView(int paramInt, View paramView, ViewGroup paramViewGroup) 
    { 
     String str = (String)this.options.get(paramInt); 

     if(paramView == null) 
     { 

     } 
     else 
     { 

      return paramView; 
     } 
     return paramViewGroup; 
    } 
    public boolean isEmpty() 
    { 
     return (this.options == null)||(this.options.size()==0); 
    } 

    private static class ViewHolder 
    { 
     ImageView finderIcon; 
     TextView finderText; 
    } 
} 

मैं आइटम की सूची पर LinearLayout इस्तेमाल किया

मैं इस त्रुटि के बारे में कई इसी तरह की समस्याओं को पढ़ लिया है, लेकिन अभी तक पूरी तरह अवधारणा को समझने की:

public class FinderActivity extends ListActivity 
{ 
    private List<String> itemsearchoptions = Arrays.asList(
      new String[] 
        { 
         "Search Service Center","Search Showroom", 
         "Area Surveillance", "Nearest OAC Offices" 
        }); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.finder); 


     getListView().setAdapter(new FinderListAdapter(this, this.itemsearchoptions));//cause of error 


    } 

यहाँ मेरे FinderAdapterclass है। तो किसी भी मदद की सराहना की जाएगी। धन्यवाद

संपादित: खेद स्टैकट्रेस

07-08 15:31:42.380: E/AndroidRuntime(4550): FATAL EXCEPTION: main 
07-08 15:31:42.380: E/AndroidRuntime(4550): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.widget.ListView.measureScrapChild(ListView.java:1166) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1248) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.widget.ListView.onMeasure(ListView.java:1158) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.view.View.measure(View.java:15525) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.view.View.measure(View.java:15525) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.view.View.measure(View.java:15525) 
07-08 15:31:42.380: E/AndroidRuntime(4550):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) 
+0

अपने स्टैकट्रैक को भी पोस्ट करें ... – Tarun

+0

अपनी आयातित कक्षाओं की जांच करें – OMAK

+2

बीटीडब्लू: मेरे लिए आपके 'getView()' को कोई समझ नहीं आता है। –

उत्तर

22

उपयोग android.widget.AbsListView.LayoutParams बजाय अपने आयात में android.widget.LinearLayout.LayoutParams भूल गया।

एक ClassCastException स्टैकट्रेस बहुत वर्णनात्मक है ...

+0

हल हो गया। ऐसा लगता है कि मैंने कुछ कोड खो दिए हैं। उत्तर देने के लिए धन्यवाद –

+0

क्या आप http://stackoverflow.com/questions/30951608/java-lang-classcastexception-android-view-viewgrouplayoutparams-cannot-be-cast की सहायता कर सकते हैं – Aditya

1

आप के बाकी जो एक ही समस्या है के लिए। कृपया पहले, अपनी getView विधि को ठीक करें।

इसे इस तरह बनाने की कोशिश करें।

public View getView(int i, View view, ViewGroup viewGroup) { 
    LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    View root; 

    if(view == null){ 
     root = layoutInflater.inflate(R.layout.yourLayout, null); 
    } else { 
     root = view; 
    } 

    return root; 
    } 

यह android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams त्रुटि को हल कर सकता है।

मेरा विश्वास करो, मुझे बस इस सटीक समस्या का सामना करना पड़ रहा है, लेकिन मैं इसे इस तरह हल करने का प्रबंधन करता हूं।

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