我是一名初學者 Android 開發人員,我撰寫了與 Web 服務相關的代碼,但該程式沒有輸出(我沒有收到任何錯誤)。而且我確定 API 是正確的,但它在文本視圖中沒有顯示任何內容。并且當應用程式在設備上運行時,互聯網已打開。
主要活動:
class MainActivity : AppCompatActivity() {
lateinit var binding : ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this,R.layout.activity_main)
binding.button.setOnClickListener(){
get()
}
}
fun get() {
var cityname = binding.editTextTextPersonName.text.toString()
val endpoint = "http://api.weatherapi.com/v1/current.json? ****** &q=ya&aqi=no"
myAsyncTask().execute(endpoint)
}
inner class myAsyncTask : AsyncTask<String, String, String>() {
override fun doInBackground(vararg params: String?): String {
try {
val url = URL(params[0])
val urlconnect=url.openConnection() as HttpURLConnection
urlconnect.connectTimeout=100000
val instring=convertsteamtoString(urlconnect.inputStream)
publishProgress(instring)
}catch (ex:Exception){}
return ""
}
override fun onProgressUpdate(vararg values: String) {
try {
val json =JSONObject(values[0])
var current=json.getJSONObject("current")
var temp_c =current.getString("temp_c")
binding.textviewtemperature.text=temp_c
}catch (ex:Exception){}
}
fun convertsteamtoString(inputStream :InputStream):String{
val bufferReader =BufferedReader(InputStreamReader(inputStream))
var line:String
var allString :String =""
try {
do{
line = bufferReader.readLine()
allString = line
}while (line != null)
}catch (ex:Exception){}
return allString
}
}
}
機器人清單:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.webservice">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.WebService"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
uj5u.com熱心網友回復:
當你撰寫一個 catch 塊而不是忽略你得到的例外時,你應該記錄例外,這樣你就不會錯過代碼中發生的事件。在你的 catch 塊中嘗試這樣的事情:
Log.e("tag", exception)
然后檢查您的 Logcat 以了解有關您的應用程式發生了什么的更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/507602.html