2012-01-08 13 views
13

के लिए पाठ सेट मैं उम्मीद है कि इतनी तरह एक TextView एक पूर्णांक के मूल्य के रूप में स्थापित करना चाहते हैं:पूर्णांक मान

tv.setText(int) 

मैं इस एक कोशिश की है कि मैं इस त्रुटि मिलती है।

इसके अलावा, मेरी पूर्णांक मान अन्य वर्ग

D/AndroidRuntime: Shutting down VM 
E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.example.application, PID: 29603 
    java.lang.IllegalStateException: Could not execute method for android:onClick 
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 
     at android.view.View.performClick(View.java:5207) 
     at android.view.View$PerformClick.run(View.java:21168) 
     at android.os.Handler.handleCallback(Handler.java:746) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:148) 
     at android.app.ActivityThread.main(ActivityThread.java:5443) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
    Caused by: java.lang.reflect.InvocationTargetException 
     at java.lang.reflect.Method.invoke(Native Method) 
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
     at android.view.View.performClick(View.java:5207) 
     at android.view.View$PerformClick.run(View.java:21168) 
     at android.os.Handler.handleCallback(Handler.java:746) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:148) 
     at android.app.ActivityThread.main(ActivityThread.java:5443) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
    Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x1 
     at android.content.res.Resources.getText(Resources.java:312) 
     at android.widget.TextView.setText(TextView.java:4427) 

उत्तर

27

आम तौर पर में,

tv.setText(String.valueOf(int)); 

यदि मान किसी अन्य वर्ग के अंदर क्या है? यदि आप किसी पूर्णांक पर एक TextView सेट

लेकिन, यह:

public int getValue() { 
    return value; 
} 

तो है कि आप इसे एक दूसरे से उपयोग कर सकते हैं: आप आपको लगता है कि कक्षा में चाहते हैं मूल्य के लिए एक गेटर कर सकते हैं एंड्रॉइड संसाधन आईडी के रूप में व्याख्या किया जाना चाहिए। यदि आप int के मूल्य को अपने पाठ के रूप में चाहते हैं (और संसाधन जो इसे इंगित करता है), इसे पहले स्ट्रिंग बनाएं।

tv.setText(String.valueOf(theOtherClassInstance.getValue())); 

संपादित यदि आपका पूर्णांक firstResult है नीचे अपनी टिप्पणी के अनुसार, तो गेटर हो जाता है:

public int getFirstResult() { 
    return firstResult; 
} 
+0

, पूर्णांक है "FIRSTRESULT", मैं सेट "सार्वजनिक पूर्णांक getValue हैं () {"सार्वजनिक int getValue (firstResult) {:? – MiKenning

+0

नहीं, आपको getalue() में किसी भी जानकारी को पास करने की आवश्यकता नहीं है - यह केवल एक पूर्णांक और एक पूर्णांक देता है। तो आपको बस getValue() :) – Eilidh

+0

यह मेरे पूर्णांक के मान को कैसे जानता है? – MiKenning

21

कर setText (int) आप एक्सएमएल फाइल से एक आवेदन संसाधन की बात कर रहे, मूल्य खुद नहीं है।

पूर्णांक सेट करने के लिए propertly निम्न कार्य करें:

tv.setText(""+integer); 

या बेहतर समाधान:

tv.setText(String.valueOf(integer)); 
इसलिए इस मामले में
संबंधित मुद्दे