Код Kotlin сообщает: «Ни одна из следующих функций не может быть вызвана с предоставленными аргументами»Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Код Kotlin сообщает: «Ни одна из следующих функций не может быть вызвана с предоставленными аргументами»

Сообщение Anonymous »

Я создаю проект Kotlin, используя несколько функций.
Код делает следующее:
  • Берет имя пользователя из счетчика.
  • Берет название бюджета из переключателей.
Осуществляет переход на другую страницу. после отображения всплывающего сообщения
При вводе обязательных полей появляются три кнопки, которые выполняют следующие действия:
  • При нажатии При нажатии кнопки 1 отображается всплывающее сообщение с общей стоимостью.
  • При нажатии кнопки 2 отображается диалоговое окно с предупреждением о том, превышает ли бюджет расходы или наоборот.
  • Перенаправляет на новую страницу со списком и сеткой
Я столкнулся со следующей ошибкой -
None of the following functions can be called with the arguments supplied.
(Context, Int, Int, Array)   where T = TypeVariable(T) for   constructor ArrayAdapter(context: Context, resource: Int, textViewResourceId: Int, objects: Array) defined in android.widget.ArrayAdapter
(Context, Int, Int, (Mutable)List)   where T = TypeVariable(T) for   constructor ArrayAdapter(context: Context, resource: Int, textViewResourceId: Int, objects: (Mutable)List) defined in android.widget.ArrayAdapter

Я новичок в Kotlin.
Вот код:
MainActivity.kt
package com.example.b1_midsemquestion

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.*
import android.widget.AdapterView.OnItemSelectedListener

class MainActivity : AppCompatActivity() {
private lateinit var selectedthing: String
private lateinit var selectedItem: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//spinner
var spinner = findViewById(R.id.spinner)
var spinnerArray = arrayOf("Ayush","Piyush","Random")
val spinneradapter = ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,spinnerArray)
spinneradapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinner.adapter = spinneradapter
spinner.onItemSelectedListener = object : OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView, view: View, position: Int, id: Long) {
selectedItem = parent.getItemAtPosition(position).toString();

}
override fun onNothingSelected(parent: AdapterView) {
}
}
//spinner
var radiogroup = findViewById(R.id.radiogrp)
var submit = findViewById(R.id.button)
submit.setOnClickListener {
val selectedRadioButtonId: Int = radiogroup.checkedRadioButtonId
if(selectedRadioButtonId != -1) {
var selectedRadioButton = findViewById(selectedRadioButtonId)
selectedthing = selectedRadioButton.text.toString();

}
//toast message
Toast.makeText(this@MainActivity, "$selectedthing is selected by $selectedItem",Toast.LENGTH_SHORT).show()
//toast message
//intent
var intent = Intent(this@MainActivity,SecondActivity::class.java)
intent.putExtra("key",selectedItem)
intent.putExtra("key2",selectedthing)
startActivity(intent)
//intent

}
}

}


SecondActivity.kt
package com.example.b1_midsemquestion

import android.app.AlertDialog
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.*
import androidx.appcompat.app.AppCompatActivity

class SecondActivity : AppCompatActivity() {
private lateinit var selectedthing:String;

//alert dialog

//alert dialog
fun showAlert(context: Context, title: String, message: String) {
val builder = AlertDialog.Builder(context)
builder.setTitle(title)
builder.setMessage(message)
var textview: TextView = findViewById(R.id.textView4)
textview.visibility = View.INVISIBLE
builder.setPositiveButton("OK") { dialog, _ ->
textview.text = "Ok Pressed";
textview.visibility = View.VISIBLE
dialog.dismiss()
}
val dialog = builder.create()
dialog.show()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.second_activity)
var user = intent.getStringExtra("key")
var expense = intent.getStringExtra("key2")
var heading = findViewById(R.id.textView2)
heading.text = expense.toString();
var budget = findViewById(R.id.budget)
var button1 = findViewById(R.id.button2)
var button2 = findViewById(R.id.button3)
var radiogrp2 = findViewById(R.id.radiogrp2)
var button3 = findViewById(R.id.button4)
var quantity = findViewById(R.id.quantity)
var price = findViewById(R.id.price)
var foodcost = findViewById(R.id.foodcost)
var transcost = findViewById(R.id.transcost)
var train = findViewById(R.id.checkBox)
var taxi = findViewById(R.id.checkBox3)
var flight = findViewById(R.id.checkBox4)
button1.setOnClickListener {
var quantityval = quantity.text.toString();
val quantityint = quantityval.toInt();
var priceval = price.text.toString();
val priceint = priceval.toInt();
var transval = transcost.text.toString();
val transint = transval.toInt();
var foodval = foodcost.text.toString();
val foodint = foodval.toInt();

val totalcost = quantityint*priceint + foodint + transint;
Toast.makeText(this@SecondActivity,"Total cost is $totalcost ", Toast.LENGTH_SHORT).show();
}
button2.setOnClickListener {
var quantityval = quantity.text.toString();
val quantityint = quantityval.toInt();
var priceval = price.text.toString();
val priceint = priceval.toInt();
var transval = transcost.text.toString();
val transint = transval.toInt();
var foodval = foodcost.text.toString();
val foodint = foodval.toInt();
val totalcost = quantityint*priceint + foodint + transint;
var budgetval = budget.text.toString();
val budgetint = budgetval.toInt();
if(totalcost > budgetint) {
//alertdialog

showAlert(this,"Alert", "Total cost greater than budget")

//alertdialog
}
else {

showAlert(this,"Alert", "Budget is greater than the total cost")

}
}
button3.setOnClickListener {
var intent2 = Intent(this@SecondActivity,ThirdActivity::class.java)
var checkselected = "";
var trainselected = "";
var flightselected = "";
var taxiselected = "";
//checkboxes
if(train.isChecked()) {
trainselected = "train";
}
if(flight.isChecked()) {
flightselected = "flight";
}
if(taxi.isChecked()) {
taxiselected = "taxi";
}
//checkboxes
intent2.putExtra("train",trainselected)
//puting extra into intent
intent2.putExtra("flight",flightselected)
intent2.putExtra("taxi",taxiselected)

//radiobutton
val selectedRadioButtonId: Int = radiogrp2.checkedRadioButtonId
if(selectedRadioButtonId != -1) {
var selectedRadioButton = findViewById(selectedRadioButtonId)
selectedthing = selectedRadioButton.text.toString();

}
//radiobutton
intent2.putExtra("key4", selectedthing)

startActivity(intent2)

}

}
}

ThirdActivity.kt
package com.example.b1_midsemquestion

import android.app.NotificationChannel
import android.app.NotificationManager
import android.content.Context
import android.os.Build
import android.os.Bundle
import android.widget.*
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.NotificationCompat

class ThirdActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.third_activity)
var listview = findViewById(R.id.listview)
var train = intent.getStringExtra("train")
var flight = intent.getStringExtra("flight")
var taxi = intent.getStringExtra("taxi")
var selectedthing = intent.getStringExtra("key4")

var values = arrayOf(train,flight,taxi,selectedthing)

//listview
val listadapter = ArrayAdapter(
this@ThirdActivity,
android.R.layout.simple_list_item_1,
values
)
listview.adapter = listadapter;
listview.setOnItemClickListener { _, _, position, _ ->
val selecteditem = values[position]
Toast.makeText(this, "Item selected is $selecteditem", Toast.LENGTH_SHORT).show()
}
//listview

//gridview
var gridview = findViewById(R.id.gridview)
var items = arrayOf("ayush", "piyush", "random", "newone")
var gridadapter = ArrayAdapter(this, R.layout.grid_item_layout, items, R.id.textView5)
gridview.adapter = gridadapter;
gridview.setOnItemClickListener { parent, view, position, id ->
val selecteditem = items[position]
val builder = NotificationCompat.Builder(this, "channel_id")
.setSmallIcon(android.R.drawable.stat_notify_chat)
.setContentTitle("Selected Item")
.setContentText("You have selected $selecteditem")
.setPriority(NotificationCompat.PRIORITY_DEFAULT)

// Create a notification manager object
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager

// Check if the device is running Android Oreo or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Create a notification channel
val channel = NotificationChannel("channel_id", "Channel Name", NotificationManager.IMPORTANCE_DEFAULT)
channel.description = "Channel Description"
// Register the channel with the system
notificationManager.createNotificationChannel(channel)
}
// Issue the notification
notificationManager.notify(1, builder.build())
}
//gridview

}
}


Подробнее здесь: https://stackoverflow.com/questions/781 ... h-the-argu
Ответить

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

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

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

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

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