Сообщение тост не отображается правильно, эмулятор - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь, чтобы сообщение Toast отображалось правильно. В результате я ищу, чтобы появился тост. Я не получаю сообщения об ошибках, просто неправильно отображается тост.

Здравствуйте, я очень новичок в Android Studio, Kotlin, я только что узнал, каким был тост вчера.

I я получаю сообщение с подтверждением, которое приходит из моего php файла.

    case 'addheroes':
        if(isset($_POST['name']) && isset($_POST['role'])){
            $db = new DbOperation(); 
            if($db->createHeroes($_POST['name'], $_POST['role'])){
                $response['error'] = false;
                $response['message'] = 'Heroes Added Successfully';
            }else{
                $response['error'] = true;
                $response['message'] = 'Could not add Hero';
            }
        }else{
            $response['error'] = true; 
            $response['message'] = 'Required Parameters are missing';
        }
    break; 

Подтверждение в моем эмуляторе выглядит следующим образом, оно остается фиксированным на экране, но также я получаю всплывающее окно с тостом в течение примерно трех секунд с тем же сообщением после добавления героя .: Emulator message-- Not Toast

package com.example.herosapiapp

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.EditText
import android.widget.Spinner
import android.widget.Toast
import com.android.volley.AuthFailureError
import com.android.volley.Request
import com.android.volley.Response
import com.android.volley.toolbox.StringRequest
import com.android.volley.toolbox.Volley
import kotlinx.android.synthetic.main.activity_main.*
import org.json.JSONException

class MainActivity : AppCompatActivity() {


    lateinit var addHeroBtn : Button
    lateinit var viewHeroBtn : Button
    lateinit var heroNameText : EditText
    lateinit var heroSpinner : Spinner

    //     private val URL_ROOT = "http://192.168.0.110/heroapi/HeroApi/v1/?op="
   private val URL_ROOT = "http://10.0.0.4:8888/heroapi/HeroApi/v1/?op="
    val URL_ADD_HERO = URL_ROOT + "addheroes"



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

        addHeroBtn = findViewById(R.id.addHeroes);
        viewHeroBtn = findViewById(R.id.viewHeroes);
        heroNameText = findViewById(R.id.heroNameText);
        heroSpinner = findViewById(R.id.spinnerGenre);

        addHeroBtn.setOnClickListener {

            addNewHeroes()
        }
// uncommented code
         viewHeroBtn.setOnClickListener {

//                   val intent = Intent(application , heroesActivity::class.java);
                   val intent = Intent(applicationContext , heroesActivity::class.java);

                   startActivity(intent)
             }
    }

    private fun addNewHeroes() {

        //getting the record values
        val name = heroNameText.text.toString()
        val mspinner = heroSpinner.selectedItem.toString()


        val mRequestQueue = Volley.newRequestQueue(this)
//        val basePath = "https://api.darksky.net/forecast/ebd6aa8663d7e74fed4daf56735d18f3/53.3498,-6.2603"


        //String Request initialized
        val mStringRequest = object : StringRequest(Request.Method.POST, URL_ADD_HERO, Response.Listener { response ->
            //


            try {
                Toast.makeText(applicationContext,response.toString(),Toast.LENGTH_LONG).show();
                error.text = response.toString()




            } catch (e: JSONException) {
                e.printStackTrace()
                Toast.makeText(applicationContext,e.toString(),Toast.LENGTH_LONG).show();
                error.text = e.toString()+"\n"+response.toString()

            }








        }, Response.ErrorListener { erro ->
            Log.i("This is the error", "Error :" + erro.toString())
            Toast.makeText(applicationContext, erro.toString(), Toast.LENGTH_SHORT).show()
            error.text = erro.toString()
            println(erro.toString()+"momom")

        }) {


            @Throws(AuthFailureError::class)
            override fun getParams(): Map<String, String> {
                val params = HashMap<String, String>()
                params.put("name", name)
                params.put("role", mspinner)
                return params
            }

        }
        mRequestQueue?.add(mStringRequest)

Я попробовал пару манипуляций с кодом Toast после исследования, но мне еще предстоит найти решение. Также включены уведомления.

...