java - 按钮点击内的 Toast 调用给出了我无法弄清楚的错误

标签 java android toast buttonclick

我正在尝试制作一个 Toast,当单击 submitbtn 时,它会显示存储在 text 变量中的信息。我收到的错误不是代码运行时的错误,而是 Eclipse 告诉我的错误:

The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (Class, String, int)

Toast 所在的文件是 UserInput.java 文件。这是当前的代码块:

Button submitBtn = (Button) findViewById(R.id.buttonSubmit);
    submitBtn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            int position = spinner.getSelectedItemPosition();
            String text = null; 
            text = dayArray[position].toString();
            //Log.i("spinner test: ", text);
            Toast toast = Toast.makeText(UserInput.class, text, Toast.LENGTH_LONG).show();
        }
    });

我什至尝试将上下文设置为UserInput.thisgetApplicationContext(),这给了我这个错误:

Type mismatch: cannot convert from void to Toast

我会让你知道,我是一个 Android 新手,也是一个 Java 新手,但我到处搜索,找不到任何可行的解决方案。这个 Toast 对于我正在开发的应用程序来说也不重要,因此它可以并且将会被完全删除,但我想知道为什么这对我的学习过程不起作用。

最佳答案

改变

Toast toast = Toast.makeText(UserInput.class, text, Toast.LENGTH_LONG).show();

Toast.makeText(UserInput.this, text, Toast.LENGTH_LONG).show();

您需要使用您的Activity Context所以你使用ActivityName.this .

但是你最初的问题是,如果你这样做,那么你需要静态地调用它,因为你正在调用 show() .

你可以脱掉show()并创建 Toast 的实例如果您想用它做其他事情,例如调用 setView()使用自定义 View为您Toast 。然后调用show()关于Toast您创建的实例。

关于java - 按钮点击内的 Toast 调用给出了我无法弄清楚的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17977440/

相关文章:

java - Eclipse Maven 失败

java - 服务器/客户端通信

java - Maven 和 java : how to generate code from protobuf files in test directory?

java - Android项目可以嵌套在另一个项目中吗

android - 从工作线程调用ui线程

ionic-framework - 在 Ionic 应用程序中处理 toast 通知的正确方法

java - 如何在java中将字节重新解释为整数?

android - ActionBar(支持)和 Fragment(支持)

java - 计算机视觉 - 使用 OpenCV 过滤凸包和凸面缺陷

java - 如何在 Dialog 的前台显示自己的 Toast?