在android中,如何在edittext onclick侦听器中编写toast消息?

在android中,如何在edittext onclick侦听器中编写toast消息?,android,toast,Android,Toast,我是android开发的初学者 在edittext中输入文本后,我需要获得toast消息 我使用了以下代码: order_dicount_Edit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String dis=order_dicount_Edit.getText().toString();

我是android开发的初学者

在edittext中输入文本后,我需要获得toast消息 我使用了以下代码:

order_dicount_Edit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            String dis=order_dicount_Edit.getText().toString();
            int disc=Integer.parseInt(dis);
            if(disc>100)
            {

                Toast.makeText(this, "Discount should be less than 100",Toast.LENGTH_SHORT).show();
            }


        }
我得到的错误如下:

The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new View.OnClickListener(){}, String, int)
改变这个

Toast.makeText(this, "Discount should be less than 100",Toast.LENGTH_SHORT).show();

未引用有效的上下文。它指的是
newview.OnClickListener()
,这是一个实现接口
OnClickListener
的匿名内部类

另外,最好是试一试

try
{
    int disc=Integer.parseInt(dis);

}catch(NumberFormatException e)
{
  e.printStackTrace();
}

使用
yourActivity来代替
this
。this
getApplicationContext()


由于
始终引用当前对象,因此当您在
OnClickListener()
接口中写入
时,它引用的是
OnClickListener()
而不是活动。

您可以在设置OnClickListener的位置获得相同的视图上下文 像


尝试实现文本更改侦听器而不是单击侦听器

我给你看一个简单的例子

order_dicount_Edit.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            if(order_dicount_Edit.getText().toString().length()>2 && Integer.parseInt(_email.getText().toString())>100){
                Toast.makeText(this, "Discount should be less than 100", Toast.LENGTH_SHORT).show();
            }

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });
在Toast.makeText(**this**,“折扣应小于100”,Toast.LENGTH_SHORT.show()中代替“
this
写下你的ActivityName.this


我的工作就是这样的

在toast上下文中,应该是活动,而不是视图。将其更改为您的活动。这样,它应该可以工作Toast.makeText(getBaseContext(),“折扣应小于100”,Toast.LENGTH\u SHORT.show();将其更改为getApplicationContext();
try
{
    int disc=Integer.parseInt(dis);

}catch(NumberFormatException e)
{
  e.printStackTrace();
}
order_dicount_Edit.setOnClickListener(new OnClickListener() 
{
        @Override
        public void onClick(View v) 
       {
             String dis=order_dicount_Edit.getText().toString();
            int disc=Integer.parseInt(dis);
            if(disc>100)
            {
                Toast.makeText( yourActivity.this, "Discount should be less than 100",Toast.LENGTH_SHORT).show();
                //Toast.makeText( getApplicationContext(), "Discount should be less than 100",Toast.LENGTH_SHORT).show();

            }
        }
}
myEditText.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(v.getContext(), "", Toast.LENGTH_SHORT).show();

            }
        });
order_dicount_Edit.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            if(order_dicount_Edit.getText().toString().length()>2 && Integer.parseInt(_email.getText().toString())>100){
                Toast.makeText(this, "Discount should be less than 100", Toast.LENGTH_SHORT).show();
            }

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });