Toast inside a Button OnclickListener is not worki

2019-03-07 03:30发布

intdelay was initialized at the beginning of the code by 1000. and I am trying to make sure that intdelay's value is updated by the value in the edit box by adding a toast when the button is clicked. but when I run the app, I get the following problem:

 Error:(46, 22) error: no suitable method found for makeText(<anonymous OnClickListener>,String,int)
method Toast.makeText(Context,CharSequence,int) is not applicable
(argument mismatch; <anonymous OnClickListener> cannot be converted to Context)
method Toast.makeText(Context,int,int) is not applicable
(argument mismatch; <anonymous OnClickListener> cannot be converted to Context)

This is the part of my code:

  @Override
        protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        delayedttxt=(EditText)findViewById(R.id.delayedttxt);

    String delay=delayedttxt.getText().toString();       //this will get a string
    try{
        int intdelay = Integer.parseInt(delay);
   }catch(NumberFormatException ex){ // handle your exception
    }

    Button btn=(Button)findViewById(R.id.btn);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            flashLight.switchFlash();
            Toast.makeText(this,"your integer is " + intdelay , Toast.LENGTH_LONG).show();
        }

    });

How can I solve that?

8条回答
闹够了就滚
2楼-- · 2019-03-07 03:50

Change the context if not somwthing may wrong in flashLight.switchFlash method

查看更多
兄弟一词,经得起流年.
3楼-- · 2019-03-07 03:56

You have given wrong context; change this line:

 Toast.makeText(this,"your integer is " + intdelay , Toast.LENGTH_LONG).show();

to

 Toast.makeText(YourActivity.this,"your integer is " + intdelay , Toast.LENGTH_LONG).show();
查看更多
登录 后发表回答