簡體   English   中英

帶錯誤android.content.res.Resources $ NotFoundException的sqlite適配器:字符串資源ID#0xa

[英]sqlite adapter with error android.content.res.Resources$NotFoundException: String resource ID #0xa

我遇到了這個奇怪的錯誤..原因是什么

  Process: com.justedhak.www.i, PID: 17041
    android.content.res.Resources$NotFoundException: String resource ID #0xa
            at android.content.res.Resources.getText(Resources.java:1334)
            at android.widget.TextView.setText(TextView.java:4917)
            at com.justedhak.www.i.DBadapter.getView(DBadapter.java:60)
            at android.widget.AbsListView.obtainView(AbsListView.java:2820)
            at android.widget.GridView.onMeasure(GridView.java:1064)
            at android.view.View.measure(View.java:18557)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5827)
            at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:607)
            at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:674)
            at android.view.View.measure(View.java:18557)

我這樣稱呼

DBadapter adapter = new DBadapter(getApplicationContext(), R.layout.grid_item_layout, Objects);

這是適配器

public class DBadapter extends ArrayAdapter<Objects> {
    private static Uri[] mUrls = null;
    private static String[] strUrls = null;
    private String[] mNames = null;
    private Cursor cc = null;
    private Context mcontext;
    private int layoutResourceId;
    private List<?> listitems;

    public DBadapter(Context context, int layoutResourceId, List<Objects> listitem) {
        super(context, layoutResourceId, listitem);
        this.layoutResourceId = layoutResourceId;
        this.mcontext = context;
        this.listitems = listitem;
        System.out.println("entering adapter");
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        System.out.println("entering adapter1");

        View row = convertView;
        final ViewHolder holder;

        if (row == null) {
            LayoutInflater inflater = LayoutInflater.from(mcontext);
            row = inflater.inflate(layoutResourceId, parent, false);
            holder = new ViewHolder();
            holder.imageTitle = (TextView) row.findViewById(R.id.Nameview);
            holder.imageView = (ImageView) row.findViewById(R.id.imageView);
            row.setTag(holder);
        } else {
            holder = (ViewHolder) row.getTag();
        }
        Objects item = getItem(position);
        System.out.println("item.getUrl() ");
        System.out.println(item.getUrl());
        Picasso.with(mcontext).setIndicatorsEnabled(true);
        holder.imageTitle.setText(item.getId());
        Picasso.
                with(mcontext).
                load(item.getUrl())
                .placeholder(R.drawable.logo)
                .fit()
                .noFade()
                .into(holder.imageView);

        holder.imageView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                Log.d("OnImageButton", "Clicked");
                Intent intnt = new Intent(mcontext, SingleViewActivity.class);
                intnt.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                //Bitmap imageID=holder.imageView;
                //intnt.putExtra("ImageId", imageID);
                mcontext.startActivity(intnt);


                Toast.makeText(mcontext, "intent",
                        Toast.LENGTH_LONG).show();
            }
        });


        return row;
    }

    static class ViewHolder {
        TextView imageTitle;
        ImageView imageView;
    }
}

網格項layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:orientation="vertical"
    android:padding="5dp">

    <TextView
        android:id="@+id/Nameview"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:maxLines="2"
        android:background="#ea4070"
        android:textSize="12sp" />


    <ImageView
        android:id="@+id/imageView"
        android:layout_width="300dp"
        android:layout_height="190dp"
        android:gravity="center"
        android:layout_below="@+id/Nameview"
        />


    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="10dp"
        android:maxLines="2"
        android:layout_below="@+id/imageView"
        android:ellipsize="marquee"
        android:textSize="12sp"
        android:background="#c9c9c9"/>

</RelativeLayout>

要將Integer值設置為任何WidgetTextViewEditText等),請始終將其轉換為String ,然后進行設置。

 holder.imageTitle.setText(String.valueOf(item.getId()));

setText有多種方法,一種使用String ,一種使用int作為resource id 如果將其傳遞給整數,它將嘗試查找對應的字符串資源id(找不到),結果變成Resources$NotFoundException

holder.imageTitle.setText(item.getId()+"");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM