2011-02-03 26 views
11

Tôi có bộ điều hợp tùy chỉnh trong đó tôi tăng bố cục. Trong bộ chuyển đổi tôi cố gắng để thay đổi một số giá trị văn bản trong TextView (@ id/datetextcal)Thay đổi giá trị văn bản trong bố cục thổi phồng

LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      cellView = inflater.inflate(R.layout.calendarcell, null); 


     TextView dateText = (TextView) cellView.findViewById(R.id.datetextcal); 
      dateText.setText(position); 

Tôi nghĩ rằng đó là tất cả đúng nhưng tôi có một lỗi! tại sao ?

Không sửa đổi giá trị này tất cả các biên dịch và hoạt động chính xác.

mã cho bố trí (R.layout.calendarcell):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    android:background="@drawable/cell" 
    android:orientation="vertical" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="40dp" 
    android:layout_height="40dp"> 
    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical"> 
     <TextView 
      android:id="@+id/datetextcal" 
      android:text="2" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" /> 
     <ImageView 
      android:layout_alignRight="@id/datetextcal" 
      android:paddingRight="2dp" 
      android:src="@drawable/dropper" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
    </RelativeLayout> 
    <TextView 
     android:gravity="center_horizontal" 
     android:textSize="9dp" 
     android:text="заметка" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

mã cho lớp adapter:

package com.android.wcalendar; 

import java.util.Date; 

import android.content.Context; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.TextView; 

public class ImageAdapter extends BaseAdapter 
{ 
    private static final String TAG = "trace"; 
    private Context    mContext; 

    public ImageAdapter(Context c) 
    { 
     // TODO Auto-generated constructor stub 
     mContext = c; 
    } 

    @Override 
    public int getCount() 
    { 
     // TODO Auto-generated method stub 
     return 7 * 5; 
    } 

    @Override 
    public Object getItem(int arg0) 
    { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public long getItemId(int arg0) 
    { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    // create a new ImageView for each item referenced by the Adapter 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     View cellView = convertView; 
     if (cellView == null) 
     { // if it's not recycled, initialize some attributes 
      cellView = new View(mContext); 
      Log.d(TAG, "cellView null"); 
     } else 
     { 
      Log.d(TAG, "cellView not null"); 
      cellView = (View) convertView; 
     } 
     LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     cellView = inflater.inflate(R.layout.calendarcell, null); 

     // Date date = new Date(); 
     // date.setDate(position); 

     TextView dateText = (TextView) 
     cellView.findViewById(R.id.datetextcal); 
     dateText.setText(position); 
     return cellView; 
    } 

} 

và rằng lỗi:

02-03 11:58:45.774: ERROR/AndroidRuntime(286): Uncaught handler: thread main exiting due to uncaught exception 
02-03 11:58:45.845: ERROR/AndroidRuntime(286): android.content.res.Resources$NotFoundException: String resource ID #0x0 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.content.res.Resources.getText(Resources.java:200) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.TextView.setText(TextView.java:2813) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at com.android.wcalendar.ImageAdapter.getView(ImageAdapter.java:67) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.AbsListView.obtainView(AbsListView.java:1274) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.GridView.onMeasure(GridView.java:934) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.View.measure(View.java:7964) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:888) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:350) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:278) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.View.measure(View.java:7964) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:888) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:619) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:280) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.View.measure(View.java:7964) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.View.measure(View.java:7964) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.View.measure(View.java:7964) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.View.measure(View.java:7964) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:888) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:350) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:278) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.View.measure(View.java:7964) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.View.measure(View.java:7964) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.View.measure(View.java:7964) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:464) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:278) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.View.measure(View.java:7964) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.View.measure(View.java:7964) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.ViewRoot.performTraversals(ViewRoot.java:763) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1633) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.os.Looper.loop(Looper.java:123) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at java.lang.reflect.Method.invoke(Method.java:521) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at dalvik.system.NativeStart.main(Native Method) 

Trả lời

27
02-03 11:58:45.845: ERROR/AndroidRuntime(286): android.content.res.Resources$NotFoundException: String resource ID #0x0 
... 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at android.widget.TextView.setText(TextView.java:2813) 
02-03 11:58:45.845: ERROR/AndroidRuntime(286):  at com.android.wcalendar.ImageAdapter.getView(ImageAdapter.java:67) 

S uggests có điều gì đó sai trái với:

 dateText.setText(position); 

Tại sao điều này dẫn đến thông báo cho biết id tài nguyên 0x0 không thể tìm thấy?

Bạn đang gọi phiên bản tài nguyên là setText(int) với giá trị số nguyên không phải là id tài nguyên hợp lệ. Ý của bạn là gọi phiên bản chuỗi là setText(String)?:

 dateText.setText(Integer.toString(position)); // or just setText(position+"") 
+1

đó là sự thật. cảm ơn – Hawkins

+0

@Hawkings - bạn được chào đón. –

+4

Con bò thánh chỉ dành 20 phút cho cùng một vấn đề này và nhận ra nó bởi vì tôi đã vượt qua một int thay vì văn bản giống như vấn đề này! – JPM

Các vấn đề liên quan