gpt4 book ai didi

android - 在数据库处理程序上调用 runOnUiThread

转载 作者:行者123 更新时间:2023-12-02 13:31:45 25 4
gpt4 key购买 nike

我在数据库处理程序中构建了一个函数来使用 jsoup 从 sqlite + html 页面中获取数据。
如何设置 runOnUiThread 来处理数据库 habdler 函数中的线程数据?
或者我如何将返回的线程数据附加到数据库处理程序文件中的 Activity ?

文件:

-ListInvests.kt > 使用 DatabaseHandler 函数将数据附加到 ListAdapter

-list_invests.xml > 是列表项

-startinvest_main.xml > 是显示列表的 View

DatabaseHandler.kt(仅限线程代码)

  Thread(Runnable {
var init_recent_price=StringBuilder()
try{
val doc = Jsoup.connect(url_link).get()
val table = doc.select("table")[0]
val tbody = table.select("tbody")
val rows = tbody.select("tr")

for (i in rows.indices) {
val row = rows[i]//
val cols = row.select("td")
//karat 21
if (i == 2 ) {
karat_recent_price = cols[0].text()

if(karat_recent_price.contains("إلى")){
var splitter="إلى"
val split_str=karat_recent_price.split(splitter)
karat_recent_price=split_str[0]
init_recent_price.append(karat_recent_price) //show karat price text

}else {
var splitter=" "
val split_str=karat_recent_price.split(splitter)
karat_recent_price=split_str[0]
init_recent_price.append(karat_recent_price) //show karat price text
}
}

//karat 18
if (i == 3 ) {
karat_recent_price = cols[0].text()
if(karat_recent_price.contains("إلى")){
var splitter="إلى"
val split_str=karat_recent_price.split(splitter)
karat_recent_price=split_str[0]
init_recent_price.append(karat_recent_price) //show karat price text

}else {
var splitter=" "
val split_str=karat_recent_price.split(splitter)
karat_recent_price=split_str[0]
init_recent_price.append(karat_recent_price) //show karat price text
}
}

//karat 24
if (i == 0 ) {
karat_recent_price = cols[0].text()

if(karat_recent_price.contains("إلى")){
var splitter="إلى"
val split_str=karat_recent_price.split(splitter)
karat_recent_price=split_str[0]
init_recent_price.append(karat_recent_price) //show karat price text

}else {
var splitter=" "
val split_str=karat_recent_price.split(splitter)
karat_recent_price=split_str[0]
init_recent_price.append(karat_recent_price) //show karat price text
}
}

//inv_amount[index] , inv_enter_price[index] , karat_recent_price
var int_amount=amount


// new_amount=(int_amount * int_recent_price_string / int_enter_price).toString()
new_amount= karat_recent_price
catch_new_amount.append(new_amount)


if(new_amount > int_amount){
var inc=new_amount.toFloat() - int_amount.toFloat()
var percent_inc=(inc/int_amount.toFloat())* 100
percent=percent_inc.toString()
init_percent_string=percent
catch_percent.append(percent)
}else {

var dec=int_amount.toFloat() - new_amount.toFloat()
var percent_dec=(dec/int_amount.toFloat()) * 100
percent=percent_dec.toString()
init_percent_string=percent
catch_percent.append(percent)

}



}//end for

}
catch(e: IOException){
e.printStackTrace()
}

//runOnUiThread how to set it here?

}).start()

最佳答案

我认为这很容易。

假设您要更新您的 textView在您的 activity然后你可以用这个更新它:

首先,我们应该有一个定义 View 的方法,如下所示:

private lateinit var mView:View

fun initView(view:View) {

mView = view;
}

在您看来,您应该调用 initView(this)
View 是这样的界面:
interface View{

}

最后你可以使用这个:
 mView.runOnUiThread(java.lang.Runnable {
mView.updateTextView(yourData)
})

关于android - 在数据库处理程序上调用 runOnUiThread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60828362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com