2011-02-03 10 views
11

私はレイアウトを膨らませるカスタムアダプタを持っています。 アダプタでは、私はそれがすべての権利だと思うが、私はエラーを持っているのTextViewID/datetextcal @)インフレータブルレイアウトのテキスト値を変更する

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); 

にテキスト値を変更してみてください!どうして ?

この値を変更しないと、すべてコンパイルされて正しく動作します。レイアウト

コード(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> 

コード:

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; 
    } 

} 

とエラーその:

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) 

答えて

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はと間違って何かがあります:

 dateText.setText(position); 

はなぜリソースID 0x0を言うメッセージには、このリードは見つかりませんでしたでしょうか?

setText(int)のリソースバージョンは、有効なリソースIDではない整数値を使用して呼び出しています。文字列のバージョンをsetText(String)と呼びますか?:

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

それは本当です。ありがとう – Hawkins

+0

@ Hawkings - ようこそ。 –

+4

この問題と同じようにテキストの代わりにintを渡していたので、聖なる牛はこの同じ問題で20分を費やしてそのことを実現しました! – JPM

関連する問題