2013-11-24 7 views
101

मैं एक एंड्रॉइड ऐप विकसित कर रहा हूं जो MySQL डेटाबेस से डेटा पढ़ता है और मुझे इस त्रुटि का सामना करना पड़ा। मैं इस एक्सएमएल लेआउट:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 


     <TextView android:id="@+id/wardNumber" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="3dp" 
      android:text="Ward Number" 
      android:textSize="22dp"/> 


     <TextView android:id="@+id/dateTime" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/wardNumber" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="3dp" 
      android:text="Date-Time" /> 

     <TextView 
      android:id="@+id/name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/dateTime" 
      android:layout_alignBottom="@+id/dateTime" 
      android:layout_alignLeft="@+id/wardNumber" 
      android:layout_marginLeft="3dp" 
      android:text="Name" /> 

</RelativeLayout> 

और ये मेरे जावा फ़ाइल है:

public ApplicationAdapter(Context context, List<Application> items) { 
    super(context, R.layout.app_custom_list, items); 
    this.items = items; 
} 

@Override 
public int getCount() { 
    return items.size(); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View v = convertView; 

    if(v == null) { 
     LayoutInflater li = LayoutInflater.from(getContext()); 
     v = li.inflate(R.layout.app_custom_list, null);    
    } 

    Application app = items.get(position); 

    if(app != null) { 
     // ImageView icon = (ImageView)v.findViewById(R.id.appIcon); 
     TextView wardNumber = (TextView)v.findViewById(R.id.wardNumber); 
     TextView name = (TextView)v.findViewById(R.id.name); 
     // LinearLayout ratingCntr = (LinearLayout)v.findViewById(R.id.ratingCntr); 
     TextView dateTime = (TextView)v.findViewById(R.id.dateTime); 

    //  if(icon != null) { 
    //   Resources res = getContext().getResources(); 
    //   String sIcon = "com.sj.jsondemo:drawable/" + app.getIcon(); 
    //   icon.setImageDrawable(res.getDrawable(res.getIdentifier(sIcon, null, null))); 
    //  } 

     if(wardNumber != null) wardNumber.setText(app.getTitle()); 

     if(name != null) name.setText(app.getTitle()); 

     if(dateTime != null) { 
      dateTime.setText(app.getTotalDl()); 
      // NumberFormat nf = NumberFormat.getNumberInstance(); 
      // dateTime.setText(nf.format(app.getTotalDl())+" dl");    
     } 


    } 

    return v; 
} 
} 

जब इस गतिविधि कहा जाता है, मैं इस त्रुटि संदेश मिलता है:

11-24 21:12:03.633: E/AndroidRuntime(1251): FATAL EXCEPTION: main 
11-24 21:12:03.633: E/AndroidRuntime(1251): android.content.res.Resources$NotFoundException: String resource ID #0x0 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.content.res.Resources.getText(Resources.java:201) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.TextView.setText(TextView.java:2863) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at com.sj.jsondemo.Appl icationAdapter.getView(ApplicationAdapter.java:53) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.AbsListView.obtainView(AbsListView.java:1430) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.ListView.onMeasure(ListView.java:1127) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:701) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.onMeasure(LinearLayout.java:311) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.measureVertical(LinearLayout.java:531) 
11-24 21:12:03.633: E/AndroidRuntime(1251):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewRoot.performTraversals(ViewRoot.java:839) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.os.Looper.loop(Looper.java:130) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.app.ActivityThread.main(ActivityThread.java:3683) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at java.lang.reflect.Method.invokeNative(Native Method) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at java.lang.reflect.Method.invoke(Method.java:507) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
11-24 21:12:03.633: E/AndroidRuntime(1251): at dalvik.system.NativeStart.main(Native Method) 
11-24 21:12:08.922: I/Process(1251): Sending signal. PID: 1251 SIG: 9 

मैं डॉन ' टी इस त्रुटि को ठीक करने के बारे में पता नहीं है।

उत्तर

362

बदलें

dateTime.setText(app.getTotalDl()); 

करने के लिए
dateTime.setText(String.valueOf(app.getTotalDl())); 

वहाँ setText के विभिन्न संस्करणों के हैं - एक एक स्ट्रिंग लेता है और एक एक पूर्णांक संसाधन आईडी लेता है। यदि आप इसे एक पूर्णांक पास करते हैं तो यह संबंधित स्ट्रिंग संसाधन आईडी को देखने का प्रयास करेगा - जो यह नहीं मिल सकता है, जो आपकी त्रुटि है।

मुझे लगता है कि app.getTotalDl() एक int देता है। आपको इस int के स्ट्रिंग मान पर सेट करने के लिए विशेष रूप से setText बताना होगा।

setText (int resid) बनाम setText (CharSequence text)

+2

सेटटेक्स्ट (int resId) में इसके साथ जुवाडोक भी संलग्न नहीं है। उन्हें वास्तव में एक अलग नाम दिया जाना चाहिए - जाहिर है यहां एक आम दुरुपयोग। तो, resId निर्दिष्ट करना किसी अन्य संसाधन का पाठ होने के लिए टेक्स्ट व्यू का पाठ सेट करता है? –

8

बदलें

dateTime.setText(app.getTotalDl()); 

साथ

dateTime.setText(""+app.getTotalDl()); 
+0

यह काम है, लेकिन मुझे लगता है कि यह उपयुक्त तरीका नहीं है। @ केनवॉल्फ जवाब सही और व्यावसायिक तरीका है। – amin

0

आप Edittext या textview आप केवल पास करना चाहिए स्ट्रिंग प्रारूप में पाठ सेट करने के लिए प्रयास करते हैं।

dateTime.setText(app.getTotalDl()); 

तो यह एक संसाधन इसे से जुड़े देखने के लिए चला गया, लेकिन यह नहीं मिला था setText के लिए मूल्यांकन मूल्य पूर्णांक था

dateTime.setText(String.valueOf(app.getTotalDl())); 
0

है तो आपको टेक्स्ट सेट करें कि वह स्ट्रिंग होना चाहिए ताकि परिवर्तित करना चाहता था .toStringe या String.valueOf(int) संलग्न करके स्ट्रिंग में पूर्णांक आपकी समस्या का समाधान करेगा!

संबंधित मुद्दे