MyThread.kt
class Article_thread:AsyncTask<String,Int,String>(){
lateinit var Myjson:container
override fun doInBackground(vararg p0: String?): String {
var MyUrl=p0[0]!!.toString()
var html=article_list_get(MyUrl)
var gson= Gson()
var Myjson=gson.fromJson(html, container::class.java)
this.Myjson=Myjson
return "finish"
}
fun article_list_get(MyUrl:String):String{
try{
val html:String= URL(MyUrl).readText()
return html
}
catch (e:Exception){
Log.v("error",e.toString())
}
return """null"""
fun get_title(position: Int): String {
var title=this.Myjson.result[position].article.title
return title
}
fun get_id(position: Int):String{
var id=this.Myjson.result[position].article.id
return id
}
fun setJson(json:container){
this.Myjson=json
}
}
data class container(val result:List<single>){}
data class single(val article:MyList){}
data class MyList(val title:String,val id:String){}
MainActivity.kt
fun tab_init(){
var mTab=findViewById<TabLayout>(R.id.mTablayout)
for(i in 0..20){
var n=mTab.newTab()
n.setText(i.toString())
mTab.addTab(n,i)
}
mTab.tabMode=TabLayout.MODE_SCROLLABLE
}
BUG/控制臺錯誤
FATAL EXCEPTION: main Process: com.example.frank.myapplication, PID: 10744
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.frank.myapplication/com.example.frank.myapplication.article.activity_article}: kotlin.UninitializedPropertyAccessException: lateinit property Myjson has not been initialized
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3046)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6809)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property Myjson has not been initialized
at com.example.frank.myapplication.PrivateThread.Article_thread.getMyjson(Article_thread.kt:16)
總結(jié)這個錯誤就是說我的MyJson變量沒有初始化。。該怎么修改呢?
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property Myjson has not been initialized
這個意思大概是使用了lateinit修飾的屬性在使用前必須初始化
你如果不能保證在使用前初始化,那么建議使用 var Myjson:container? = null
的方式來使用
在后面使用的時候應(yīng)該用container?.foo()的方式來調(diào)用方法
也許不應(yīng)該說,但是你的變量命名規(guī)則太不符合規(guī)范了
類名大寫開頭,變量小寫開頭,除常量外不用下劃線,采用駝峰命名
這個可以說是基本約定的規(guī)范
https://www.cnblogs.com/han-1...
阿里的java編程規(guī)范,在kotlin中也基本適用,建議你去看看
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團,成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。