由于Toast和OnClickListener的无效组合导致的错误

Har*_*M V 35 android toast

我正在尝试使用Toast内部OnCLickListener.我的代码触发以下错误:

The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new View.OnClickListener(){}, String, int)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

    Button register = (Button) findViewById(R.id.register);
    register.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
            EditText name = (EditText)findViewById(R.id.name);
            String Lname = name.getText().toString();

            Toast.makeText(this, Lname, Toast.LENGTH_SHORT).show();



        }
    });
Run Code Online (Sandbox Code Playgroud)

Com*_*ish 94

正如肯尼所说,this是指View.OnClickListener而不是你的Activity.改变这个,到MyActivity.this.

例如,

public class MyActivity extends Activity {
// ... other code here
Toast.makeText(MyActivity.this, Lname, Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

  • MyActivity.this.谢谢.不记得如何引用封闭类的这个. (2认同)

jsa*_*eew 7

在这种情况下,this指的是匿名子类的实例View.OnClickListener.您必须引用this创建匿名类的类.