在android中,如何在edittext onclick侦听器中编写toast消息?
我是android开发的初学者 在edittext中输入文本后,我需要获得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();
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) {
}
});