2014-09-23 7 views
15

मैं ListView उपयोग कर रहा हूँ गतिशील एंड्रॉयड में चेक बॉक्स जोड़ने के लिए। मैं ListView बढ़ जोड़ने के लिए एक ContextAdapter वर्ग का उपयोग कर रहा हूँ। मेरे त्रुटि लॉग इस प्रकार है:

09-23 13:44:45.000: E/AndroidRuntime(1192): FATAL EXCEPTION: main 
09-23 13:44:45.000: E/AndroidRuntime(1192): Process: com.project.attendancemanager, PID: 1192 
09-23 13:44:45.000: E/AndroidRuntime(1192): android.content.res.Resources$NotFoundException: String resource ID #0x1 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.content.res.Resources.getText(Resources.java:244) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.widget.TextView.setText(TextView.java:3888) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at com.project.attendancemanager.CustomAdapter.getView(CustomAdapter.java:31) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.widget.AbsListView.obtainView(AbsListView.java:2263) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1263) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.widget.ListView.onMeasure(ListView.java:1175) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.View.measure(View.java:16497) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.widget.RelativeLayout.measureChild(RelativeLayout.java:689) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:473) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.View.measure(View.java:16497) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.View.measure(View.java:16497) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.View.measure(View.java:16497) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.View.measure(View.java:16497) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1295) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.Choreographer.doCallbacks(Choreographer.java:574) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.Choreographer.doFrame(Choreographer.java:544) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.os.Handler.handleCallback(Handler.java:733) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.os.Handler.dispatchMessage(Handler.java:95) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.os.Looper.loop(Looper.java:136) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at java.lang.reflect.Method.invoke(Method.java:515) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
09-23 13:44:45.000: E/AndroidRuntime(1192):  at dalvik.system.NativeStart.main(Native Method) 

ContextAdapter वर्ग इस प्रकार है:

import android.app.Activity; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.CheckBox; 
import android.widget.TextView; 

public class CustomAdapter extends ArrayAdapter<ListData>{ 

    ListData[] items = null; 
    Context context; 

    public CustomAdapter(Context context, ListData[] resource) { 
     super(context, R.layout.activity_list_row, resource); 
     // TODO Auto-generated constructor stub 
     this.context = context; 
     this.items = resource; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     LayoutInflater inflator = ((Activity) context).getLayoutInflater(); 
     convertView = inflator.inflate(R.layout.activity_list_row, parent, false); 
     TextView name = (TextView) convertView.findViewById(R.id.NameTV); 
     TextView rollNo = (TextView) convertView.findViewById(R.id.RollNoTV); 
     CheckBox cb = (CheckBox) convertView.findViewById(R.id.studentCB); 
     name.setText(items[position].getName()); 
     rollNo.setText(items[position].getRollNo()); 

     if(items[position].getValue() == 1) 
      cb.setChecked(true); 
     else 
      cb.setChecked(false); 

     return convertView; 
    } 
} 

मेरे ListData वर्ग:

package com.project.attendancemanager; 

public class ListData { 

    String name; 
    int value, rollno; 

    ListData(String name, int rollno, int value){ 
     this.name = name; 
     this.rollno = rollno; 
     this.value = value; 
    } 

    public String getName(){ 
     return this.name; 
    } 

    public int getRollNo(){ 
     return this.rollno; 
    } 

    public int getValue(){ 
     return this.value; 
    } 

} 

गतिविधि मैं यह कर रहा हूं में onCreate समारोह के अंदर :

Listview lv; 
ListData[] items; 
CustomAdapter adapter = new CustomAdapter(this, items); 
lv.setAdapter(adapter); 

यह बहुत मदद की होगी किसी ने मेरे कोड में गलती का कहना है सकता है। धन्यवाद! चीयर्स!

rollNo.setText(items[position].getRollNo()); 

के बजाय

उत्तर

92

आप

rollNo.setText(Integer.toString(items[position].getRollNo())); 

का उपयोग करना चाहिए आप पाठ के रूप में पूर्णांक स्थापित करने के लिए, आप विधि setText (int Resid) और आवेदन फोन पाठ कुछ स्ट्रिंग संसाधन के रूप में सेट करने का प्रयास का प्रयास करें इस resid के साथ।

+0

उपयोगकर्ता String.valueOf (int); अन्यथा चेतावनी नीचे दिखा: जब बुला TextView # setText * कभी संख्या # toString() फोन प्रारूप संख्या करने के लिए; यह अंश विभाजक और लोकेल-विशिष्ट अंकों को सही तरीके से संभाल नहीं पाएगा। उचित प्रारूप विनिर्देशों (% d या% च) के बजाय साथ स्ट्रिंग # स्वरूप का उपयोग पर विचार करें। * पाठ प्रदर्शित करने के लिए एक स्ट्रिंग अक्षर (उदा। "हैलो") पास न करें। हार्डकोडेड टेक्स्ट का उचित रूप से अन्य भाषाओं में अनुवाद नहीं किया जा सकता है। इसके बजाए एंड्रॉइड संसाधन स्ट्रिंग का उपयोग करने पर विचार करें। * पाठ भाग को जोड़कर संदेश न बनाएं। ऐसे संदेशों का सही अनुवाद नहीं किया जा सकता है। –

+0

@NaveenKumarM मुझे यकीन नहीं है कि आपका उत्तर प्रश्न से संबंधित है। –

1

setText does not को पूर्णांक मूल्यों

बस अपने कोड इस ""+rollNo.setText(items[position].getRollNo());

इस त्रुटि होती है क्योंकि setText पूर्णांकों नहीं ले करता है की तरह देखने के लिए ""+ जोड़े की अनुमति देते हैं, यह तार लेता

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