我正在尝试制作一个 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.this
和getApplicationContext()
,这给了我这个错误:
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/