2017-05-25 15 views
5
fun Tryouts() { 
var CheckBox1 : CheckBox = findViewById(R.id.ForwardBox) as CheckBox 
CheckBox1.setChecked(false) 
} 

मैं अभी भी Kotlin में अभी शुरुआत kotlin की केवल बुनियादी काम कर सीखा रही है, इसलिए मैं किसी भी एंड्रॉयड विजेट का उल्लेख या बदलने यह राज्य है एंड्रॉयड स्टूडियो में असमर्थ हूँ कि क्या यह TextView या चेकबॉक्स या है RadioBox।
सभी मामलों में findViewById के लिए समान अनसुलझा संदर्भ त्रुटियां ...
मुझे नहीं पता कि मैं गलत क्या कर रहा हूं, यहां तक ​​कि जावा रूपांतरण भी एक ही त्रुटियों को आउटपुट करता है।अनसुलझे संदर्भ: findViewById Kotlin में

+1

एक तरफ ध्यान दें मैं सलाह देते हैं [Kotlin एंड्रॉयड एक्सटेंशन] (https://kotlinlang.org/docs/tutorials/android-plugin.html) पर एक नज़र लेने की होगी, ('findViewById की आवश्यकता समाप्त) ' –

उत्तर

3
fun Tryouts() { 
    val checkBox = findViewById(R.id.ForwardBox) as CheckBox 
    checkBox.isChecked = false 
} 

वैसे भी, उदाहरण के लिए, अंडरस्कोर द्वारा separed छोटे अक्षरों में अपनी आईडी को परिभाषित करने पर विचार करें:

val checkBox = findViewById(R.id.forward_box) as CheckBox 
+0

मुझे लगता है ** वैल ** इस मामले में भी बेहतर है – DEADMC

+0

@DEADMC आप सही हैं – AlexTa

+0

ठीक है, यह ओपी के प्रश्न का उत्तर नहीं देता है: अनसुलझे संदर्भ त्रुटियां। – Naetmul

4

Kotlin में आप सीधे शब्दों में kotlinx.android.synthetic.<your layout name> से आईडी ForwardBox उपयोग करते हैं, findViewById उपयोग करने की आवश्यकता नहीं है। आपके कोड में सभी प्रयुक्त तत्व स्वचालित रूप से पाए जाते हैं और कोटलिन द्वारा लेआउट (xml) में आईडी के समान वैरिएबल नाम को असाइन किए जाते हैं।

उदाहरण के लिए:

fun init(){ 
    ForwardBox.isChecked = false 
} 
3

ऐसा लगता है यह है सबसे आसान तरीका है अपने Build.Gradle के findViewById()

जाओ छुटकारा पाने के लिए (मॉड्यूल: एप्लिकेशन)

निम्नलिखित पंक्ति जोड़

apply plugin: 'kotlin-android-extensions' 
  • तो यह सिंक करने के लिए
  • के लिए कहेगा तो सिंक प्रेस

उसके बाद अपनी गतिविधि फ़ाइल के लिए आते हैं यह कई हो MainActivity.kt

वहाँ आयात ही दृश्य आयात करने के लिए कहो

import kotlinx.android.synthetic.main.<layout_name>.<view_name>; 

या

सभी विचारों को आयात करने के लिए

import kotlinx.android.synthetic.main.<layout_name>.*; 

उदाहरण: यदि आपका लेआउट में

<Checkbox id="@+/forwardBox" . . . /> 

यह activity_main लेआउट में तो आयात किया जाता है के रूप में

import kotlinx.android.synthetic.main.activity_main.forwardBox; 

तो या तो अपने समारोह या कक्षा में यह सीधे का उपयोग

forwardBox.isChecked = false 
0

आपकी सी ओडी गलत है। कृपया इसे इस पर बदलें।

fun Tryouts() { 
    var CheckBox1 = findViewById(R.id.ForwardBox) as CheckBox 
    CheckBox1.setChecked(false) 
} 

कोटलिन में, बस एक चर घोषित करें।पसंद: var abc

एबीसी किसी भी प्रकार की वस्तु द्वारा शुरू किया जा सकता है।

हम लेआउट से एक दृश्य ले जाना है तो हम लिखने के लिए है:

findViewById(R.id.ForwardBox) 

तो उस दृश्य डाली।

findViewById(R.id.ForwardBox) as CheckBox 

फिर एक चर में स्टोर करें।

var CheckBox1 = findViewById(R.id.ForwardBox) as CheckBox 
संबंधित मुद्दे