Проблема с API с помощью Kotlin | Данные не показываются в приложенииAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с API с помощью Kotlin | Данные не показываются в приложении

Сообщение Anonymous »

Это первое приложение для меня, я попытался использовать API с моего веб -сайта в моем приложении, когда я открываю поле, которое, как говорят, для подключения, и не показывают никаких данных с веб -сайта < /p>
Обратите внимание, что: я использую Kotlin + Android Studio, последняя версия
Я проверил свой веб -сайт и API через почтальон, и она идеально подходит, поэтому я думаю, что проблема в моем приложении
Вот мой полный код < /p>
admobhelper.kt

Код: Выделить всё

package com.khm.jobstest

import android.app.Activity
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView
import com.google.android.gms.ads.MobileAds

object AdMobHelper {
fun initializeAdMob(activity: Activity) {
MobileAds.initialize(activity) {}
}

fun loadBannerAd(adView: AdView) {
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)
}
}
< /code>
apiservice.kt
package com.khm.jobstest

import retrofit2.Call
import retrofit2.http.GET

interface ApiService {
@GET("jobs/") // Use the correct endpoint
fun getJobs(): Call
}
< /code>
jobadapter.kt
package com.khm.jobstest

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide

class JobAdapter(private val jobs: List) :
RecyclerView.Adapter() {

class JobViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val jobImage: ImageView = view.findViewById(R.id.jobImage)
val jobName: TextView = view.findViewById(R.id.jobName)
val jobDetails: TextView = view.findViewById(R.id.jobDetails)
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): JobViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_job, parent, false)
return JobViewHolder(view)
}

override fun onBindViewHolder(holder: JobViewHolder, position: Int) {
val job = jobs[position]
holder.jobName.text = job.name
holder.jobDetails.text = job.app_contect
Glide.with(holder.itemView.context).load(job.app_image).into(holder.jobImage)
}

override fun getItemCount(): Int = jobs.size
}
< /code>
Jobmodel.kt
package com.khm.jobstest

data class JobModel(
val name: String,
val app_contect: String,
val app_image: String
)
< /code>
mainactivity.kt
package com.khm.jobstest

import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView
import com.google.android.gms.ads.MobileAds
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

class MainActivity : AppCompatActivity() {

private lateinit var recyclerView: RecyclerView
private lateinit var adView: AdView

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

// Initialize RecyclerView
recyclerView = findViewById(R.id.recyclerView)
recyclerView.layoutManager = LinearLayoutManager(this)

// Initialize AdMob
MobileAds.initialize(this) {}
adView = findViewById(R.id.adView)
adView.loadAd(AdRequest.Builder().build())

// Check internet connection
if (!NetworkUtils.isOnline(this)) {
Toast.makeText(this, "يجب أن تستخدم الإنترنت للتصفح، حاول لاحقًا.", Toast.LENGTH_LONG).show()
return
}

// Fetch data from API
val retrofit = Retrofit.Builder()
.baseUrl("https://trainermods.net/api/")
.addConverterFactory(GsonConverterFactory.create())
.build()

val apiService = retrofit.create(ApiService::class.java)
apiService.getJobs().enqueue(object : Callback  {
override fun onResponse(call: Call, response: Response) {
if (response.isSuccessful && response.body() != null) {
recyclerView.adapter = JobAdapter(response.body()!!)
} else {
Toast.makeText(this@MainActivity, "البيانات غير صالحة", Toast.LENGTH_SHORT).show()
}
}

override fun onFailure(call: Call, t: Throwable) {
Toast.makeText(this@MainActivity, "فشل تحميل البيانات: ${t.message}", Toast.LENGTH_SHORT).show()
}
})
}
}
< /code>
networkutils.kt
package com.khm.jobstest
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkCapabilities

object NetworkUtils {
fun isOnline(context: Context): Boolean {
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val network = connectivityManager.activeNetwork ?: return false
val capabilities = connectivityManager.getNetworkCapabilities(network) ?: return false
return capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)
}
}
< /code>
Retrofitinstance.kt
package com.khm.jobstest

import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

object RetrofitInstance {
private const val BASE_URL = "https://trainermods.net/api/"

val retrofit: Retrofit by lazy {
Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
}

fun getRetrofitInstance(): Retrofit {
return retrofit
}
}
< /code>
android manifest.xml




















< /code>
Aactivity_main.xml








< /code>
item_job.xml









Так что, пожалуйста, любую идею, мне нужна помощь

Подробнее здесь: https://stackoverflow.com/questions/794 ... in-the-app
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблема с API с помощью Kotlin | Данные не показываются в приложении
    Anonymous » » в форуме Android
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Проблема с API с помощью Kotlin | Данные не показываются в приложении
    Anonymous » » в форуме Android
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Объявления Unity показываются, но не так, как я хочу
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • /usr/bin/time -v В кэшированном файле: почему входы файлов показываются как не нулевые?
    Anonymous » » в форуме Linux
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Некоторые продукты WooCommerce не показываются с изотопным фильтром
    Anonymous » » в форуме Php
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»