我收到错误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)
答案 0 :(得分:0)
R.id.text_flower_category是TextView,而不是Spinner