错误TextView无法转换为android.widget.Spinner

时间:2018-09-02 15:37:02

标签: java android

我收到错误TextView无法转换为android.widget.Spinner,我不确定我哪里出错了。我是新来的。我在这里添加我的java.class文件和log cat。有人可以帮我吗?

public class ListDataAdapter extends ArrayAdapter {
List list = new ArrayList();

public ListDataAdapter(@NonNull Context context, int resource) {
    super(context, resource);
}

static class LayoutHandler{
    TextView NAME,PRICE,DESCRIPTION;
    Spinner CATEGORY;
}

@Override
public void add(@Nullable Object object) {
    super.add(object);
    list.add(object);
}

@Override
public int getCount() {
    return list.size();

}

@Nullable
@Override
public Object getItem(int position) {
    return list.get(position);
}

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    View row = convertView;
    LayoutHandler layoutHandler;
    if(row == null)
    {
        LayoutInflater layoutInflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = layoutInflater.inflate(R.layout.row_layout,parent,false);
        layoutHandler = new LayoutHandler();
        layoutHandler.NAME = (TextView)row.findViewById(R.id.text_flower_name);
        layoutHandler.PRICE = (TextView)row.findViewById(R.id.text_flower_price);
        layoutHandler.DESCRIPTION = (TextView)row.findViewById(R.id.text_flower_description);
        layoutHandler.CATEGORY = (Spinner)row.findViewById(R.id.text_flower_category);
        row.setTag(layoutHandler);

    }else
    {
        layoutHandler = (LayoutHandler) row.getTag();


    }
    DataProvider dataProvider = (DataProvider)this.getItem(position);
    layoutHandler.NAME.setText(dataProvider.getName());
    layoutHandler.PRICE.setText(dataProvider.getPrice());
    layoutHandler.DESCRIPTION.setText(dataProvider.getDescription());
    layoutHandler.CATEGORY.setSelection(0);
    return row;
}

}

这是我的Log cat错误。

--------- beginning of crash
     

09-02 21:01:52.368 24696-24696 / com.example.www.shop E / AndroidRuntime:FATAL EXCEPTION:main       流程:com.example.www.shop,PID:24696       java.lang.ClassCastException:android.widget.TextView无法转换为android.widget.Spinner           在com.example.www.shop.ListDataAdapter.getView(ListDataAdapter.java:59)           在android.widget.AbsListView.obtainView(AbsListView.java:2378)           在android.widget.ListView.makeAndAddView(ListView.java:1977)           在android.widget.ListView.fillDown(ListView.java:711)           在android.widget.ListView.fillFromTop(ListView.java:772)           在android.widget.ListView.layoutChildren(ListView.java:1723)           在android.widget.AbsListView.onLayout(AbsListView.java:2170)           在android.view.View.layout(View.java:17707)           在android.view.ViewGroup.layout(ViewGroup.java:5588)           在android.support.constraint.ConstraintLayout.onLayout(ConstraintLayout.java:1858)           在android.view.View.layout(View.java:17707)           在android.view.ViewGroup.layout(ViewGroup.java:5588)           在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)           在android.widget.FrameLayout.onLayout(FrameLayout.java:261)           在android.view.View.layout(View.java:17707)           在android.view.ViewGroup.layout(ViewGroup.java:5588)           在android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:444)           在android.view.View.layout(View.java:17707)           在android.view.ViewGroup.layout(ViewGroup.java:5588)           在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)           在android.widget.FrameLayout.onLayout(FrameLayout.java:261)           在android.view.View.layout(View.java:17707)           在android.view.ViewGroup.layout(ViewGroup.java:5588)           在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)           在android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)           在android.widget.LinearLayout.onLayout(LinearLayout.java:1494)           在android.view.View.layout(View.java:17707)           在android.view.ViewGroup.layout(ViewGroup.java:5588)           在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)           在android.widget.FrameLayout.onLayout(FrameLayout.java:261)           在com.android.internal.policy.DecorView.onLayout(DecorView.java:727)           在android.view.View.layout(View.java:17707)           在android.view.ViewGroup.layout(ViewGroup.java:5588)           在android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2346)           在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2068)           在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)           在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:6353)           在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:874)           在android.view.Choreographer.doCallbacks(Choreographer.java:686)           在android.view.Choreographer.doFrame(Choreographer.java:621)           在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:860)           在android.os.Handler.handleCallback(Handler.java:751)           在android.os.Handler.dispatchMessage(Handler.java:95)           在android.os.Looper.loop(Looper.java:154)           在android.app.ActivityThread.main(ActivityThread.java:6121)           在java.lang.reflect.Method.invoke(本机方法)           在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:889)           在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

1 个答案:

答案 0 :(得分:0)

R.id.text_flower_category是TextView,而不是Spinner