0

我有一个类 fragmentProducts.java ,我将我的产品加载到列表视图中。

在我的 xml 布局中,我有文本和两个微调器,一个用于大小,一个用于颜色。文本一切正常,显示出来了。我对微调器有疑问,因为我认为我应该将arrayAdapter添加到GetView中。 我遇到致命异常:E/AndroidRuntime(29244): android.content.res.Resources$NotFoundException: Resource ID #0x7f0a005b type #0x12 is not valid at android.content.res.loadXMLResourceParser(Resources.java:2407)...

我的带有 ViewHelper 类的 GetView 代码是这样的:

   `private class ViewHolder {
            TextView prName;
            TextView prDescription;
            TextView prfprice;
            ImageView prImage;
            //spinners
            Spinner PrVariants;     
            Spinner PrOptions;

            int ProdPosition;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            final ViewHolder viewHolder;

            View view = convertView;
            final ProductsData info = getItem(position);

            if (view == null) {
                // Product row
                view = mInflater.inflate(R.layout.productslistitem_layout, null);

                viewHolder = new ViewHolder();
                assert view != null;
                viewHolder.prName = (TextView) view.findViewById(R.id.product_name);
                viewHolder.prDescription = (TextView) view.findViewById(R.id.product_description);
                viewHolder.prfprice = (TextView) view.findViewById(R.id.product_fprice);
                viewHolder.prImage = (ImageView) view.findViewById(R.id.product_image);

                **//here i try to put test values on the spinner//**
                viewHolder.PrVariants = (Spinner) view.findViewById(R.id.spOptions1);
                String[] names = {"test1","test2","test3"};

                var1Adapter = new ArrayAdapter<String>(getActivity(),R.id.spOptions1,names);
                var1Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                viewHolder.PrVariants.setAdapter(var1Adapter);

                viewHolder.prfprice.setText("120.00" + "€");
                viewHolder.prName.setText(info.getPrName());
                viewHolder.prDescription.setText(info.getPrComments());

                view.setTag(viewHolder);
            } else
                viewHolder = (ViewHolder) view.getTag();

            return view;
        }`

有人理解错误信息吗?我不应该在 GetView 函数中使用 arrayadapter 吗?

4

2 回答 2

0

谢谢你,不幸的是我无法让它与你的答案一起工作: var1Adapter = new ArrayAdapter<String>(getActivity(),R.id.layoutspOptions1,names)。//layoutspOptions1 是我有微调器的linearLayout id。

虽然它通过将 arrayAdapter 更改为:

`var1Adapter = new ArrayAdapter(getActivity(),android.R.layout.simple_spinner_item,names);

var1Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);`

因此,我们不使用 R.id.spinnerId 作为 ArrayAdapter 的第二个参数,而是使用默认布局:android.R.layout.simple_spinner_item

于 2014-09-21T12:39:55.440 回答
0

Resources$NotFoundException:资源 ID #0x7f0a005b 类型 #0x12

因为ArrayAdapterLayout id而不是View id作为第二个参数。

var1Adapter = new ArrayAdapter<String>(getActivity(),
                       <Layout_Id_In_Which_Spinner_Added>,names);
于 2014-09-21T08:00:47.013 回答