Сразу хочу сказать что еще новичок.
Загружаю данные по API запросу и вывожу их в ListView в три строчки используя адаптер. Есть необходимость вывести детальную информацию по нажатию на строку ListView.
Первую строчку сделал
Код:
android:clickable="true"
android:onClick="Detal"
описание функции Detal
Код:
fun Detal(view: View) {
val DetalIntent = Intent(this, DetalInfo::class.java)
startActivity(DetalIntent)
}
по нажатию на первую строчку activity запускается и сразуже закрывается с предыдущей activity.
при вызове fun Detal с любой другой activity все хорошо запускается, проблема с запуском толькос конкретной activity
Прошу указать в чем моя ошибка
текст tis_zakaschik.kt
Код:
package com.example.admin
import android.content.Intent
import android.content.SharedPreferences
import android.os.AsyncTask
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import kotlinx.android.synthetic.main.activity_tis_zakazchik.*
import org.json.JSONObject
import java.net.HttpURLConnection
import java.net.URL
@Suppress("NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS")
class TIS_zakazchik : AppCompatActivity() {
private lateinit var pref: SharedPreferences
private val APP_PREFERENCES = "mysettings"
private val APP_PREFERENCES_TEL = "tel"
var tel = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_tis_zakazchik)
val url = "https://tis.tis-online.com/m11/api/v1?token=D4312D895799&command=getRequests&fromDate=01.12.2018&00:00&toDate=25.12.2018&00:00"
AsyncTaskHandleJson().execute(url)
//чтение файла с настройками
pref = getSharedPreferences(APP_PREFERENCES, MODE_PRIVATE)
if (pref.contains(APP_PREFERENCES_TEL)) {
// Получаем число из настроек
tel = pref.getString(APP_PREFERENCES_TEL, "1");
}
}
inner class AsyncTaskHandleJson : AsyncTask<String, String, String>() {
override fun doInBackground(vararg url: String?): String {
var text: String
val connection = URL(url[0]).openConnection() as HttpURLConnection
try {
connection.connect()
text = connection.inputStream.use { it.reader().use { reader -> reader.readText() } }
}
finally {connection.disconnect()}
return text
}
override fun onPostExecute(result: String?) {
super.onPostExecute(result)
handleJson(result)
}
}
//функция чтения JSON выгрузки
private fun handleJson(jsonString: String?) {
val JA = JSONObject(jsonString)
val jsonArray = JA.getJSONArray("list")
val list = ArrayList<Zakazchik>()
//вывод ФИО по номеру телефона из выгрузки
var x = 0
while (x < jsonArray.length()) {
val jsonObject = jsonArray.getJSONObject(x)
if (tel == jsonObject.getString("phonePerson")) {
title = jsonObject.getString("contactPerson")
x = jsonArray.length()
}
x++
}
//запись выгрузки в ЛИСТ для телефона указаннго при регистрации
x = 0
var y = 0
while (x < jsonArray.length()) {
val jsonObject = jsonArray.getJSONObject(x)
if (tel == jsonObject.getString("phonePerson")) {
list.add(
Zakazchik(
jsonObject.getInt("number"),
jsonObject.getString("status"),
jsonObject.getString("contactPerson"),
jsonObject.getString("phonePerson"),
jsonObject.getString("dateCreate")
)
)
y++
}
x++
}
//вывод сообщения если по данному номеру нет заявок в выгрузке
if (y == 0) {
textViewTel.text = "У вас нет заявок"
}
val adapter = ListAdapter(this, list)
zakazchik_list.adapter = adapter
}
fun Detal(view: View) {
val DetalIntent = Intent(this, DetalInfo::class.java)
startActivity(DetalIntent)
}
}
Пожалуйста, оформляйте Ваш код согласно правилам.