[英]Button click event error for toast on android studio
This code does not run on Android Studio. 此代码无法在Android Studio上运行。 I just want it to display a toast when the button is clicked.
我只希望它在单击按钮时显示一个吐司。 Please help.
请帮忙。 Code is attached below:
代码如下:
I'm new to android development and is having a hard time figuring this out. 我是android开发的新手,很难解决这个问题。 I think the problem is a silly syntax error or variable not being defined.
我认为问题是一个愚蠢的语法错误或未定义变量。 Also, how do I define "v" ?
另外,如何定义“ v”?
package com.shutter2000.www.shutter_2000_oms;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import android.view.View.OnClickListener;
public class SiteVisitDetails extends Activity {
public EditText mCusName;
public EditText mOrderID;
public EditText mProjectID;
public EditText mHeightWidth;
public EditText mNote;
public Button mSubmitButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_site_visit_details);
//initialize text fields
mCusName = (EditText) findViewById(R.id.txtCusName);
mOrderID = (EditText) findViewById(R.id.txtOrderID);
mProjectID = (EditText) findViewById(R.id.txtProjectID);
mHeightWidth = (EditText) findViewById(R.id.txtHeightWidth);
mNote = (EditText) findViewById(R.id.txtNote);
mSubmitButton = (Button) findViewById(R.id.btnSubmit);
//listen to submit button click event
mSubmitButton.OnClickListener(new View.OnClickListener())
{
@Override
public void onClick(View v){
if (v == mSubmitButton) {
Context context = getApplicationContext();
CharSequence text = "Successfully Sent!";
int duration = Toast.LENGTH_LONG;
final Toast tost = Toast.makeText(context, text, duration);
tost.show();
}
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.site_visit_details, menu);
return true;
}
public void addItemsToProductSpinner() {
Spinner spinner = (Spinner) findViewById(R.id.spnProducts);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.products, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
android.R.layout.simple_spinner_item
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Errors are: 错误是:
Errors for "mSubmitButton..." “ mSubmitButton ...”的错误
Expected class or package
'OnClickListener' is abstract;cannot be instantiated
Errors for "@override public void onClick(View v){..." “ @override public void onClick(View v){...”的错误
Annotations are not allowed here
Identifier or type expected
Errors for "public void addItemsToProductSpinner()..." 错误为“ public void addItemsToProductSpinner()...”
";" expected
Cannot resolve symbol "v"
unexpected token
It's wrong v == mSubmitButton
In java, can equals with operator == only primitive types. v == mSubmitButton
是错误的在Java中,只能与操作符==等同于基本类型。 For object you need use equals() method. 对于对象,您需要使用equals()方法。 Replace:
更换:
mSubmitButton.onClickListener(new View.OnClickListener())
{
@Override
public void onClick(View v){
if (v.getId() == R.id.btnSubmit) {
Context context = getApplicationContext();
CharSequence text = "Successfully Sent!";
int duration = Toast.LENGTH_LONG;
final Toast tost = Toast.makeText(context, text, duration);
tost.show();
}
}
}
Try with below code: 尝试以下代码:
if(v.getId() == R.id.btnSubmit){
Toast.makeText(SiteVisitDetails.this,"Successfully Sent!",Toast.LENGTH_LONG).show();
}
I think you don't need to check 我想你不需要检查
@Override
public void onClick(View v){
//Don't need to check condition control come here only v.getId() == R.id.btnSubmit
// if (v == mSubmitButton) {
Context context = getApplicationContext();
CharSequence text = "Successfully Sent!";
int duration = Toast.LENGTH_LONG;
final Toast tost = Toast.makeText(context, text, duration);
tost.show();
//}
}
package com.shutter2000.www.shutter_2000_oms;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import android.view.View.OnClickListener;
public class SiteVisitDetails extends Activity implements OnClickListener{
public EditText mCusName;
public EditText mOrderID;
public EditText mProjectID;
public EditText mHeightWidth;
public EditText mNote;
public Button mSubmitButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_site_visit_details);
//initialize text fields
mCusName = (EditText) findViewById(R.id.txtCusName);
mOrderID = (EditText) findViewById(R.id.txtOrderID);
mProjectID = (EditText) findViewById(R.id.txtProjectID);
mHeightWidth = (EditText) findViewById(R.id.txtHeightWidth);
mNote = (EditText) findViewById(R.id.txtNote);
mSubmitButton = (Button) findViewById(R.id.btnSubmit);
//listen to submit button click event
mSubmitButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.mSubmitButton) {
Toast.makeText(this,"Successfully sent!",Toast.LENGTH_LONG).show();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.site_visit_details, menu);
return true;
}
public void addItemsToProductSpinner() {
Spinner spinner = (Spinner) findViewById(R.id.spnProducts);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.products, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
android.R.layout.simple_spinner_item
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
mSubmitButton.setOnClickListener(new View.OnClickListener())
{
@Override
public void onClick(View v){
CharSequence text = "Successfully Sent!";
int duration = Toast.LENGTH_LONG;
Toast tost = Toast.makeText(SiteVisitDetails.this, text, duration);
tost.show();
}
});
Use this. 用这个。 No need to check
if(v.getId() == R.id.btnSubmit)
. 无需检查
if(v.getId() == R.id.btnSubmit)
。 Because you are setting a click action to an already initiliazed button. 因为您要将点击动作设置为已初始化的按钮。
you should use the setter to set an onclickListener. 您应该使用设置器来设置onclickListener。 And as you are using a new onclicklistener and you are only setting it for your button, you dont need to check if v==mSubmitButton because it's the only choice anyway :)
而且,当您使用新的onclicklistener时,只需将其设置为按钮,就无需检查v == mSubmitButton了,因为无论如何这是唯一的选择:)
mSubmitButton.setOnClickListener(new View.OnClickListener())
{
@Override
public void onClick(View v){
Context context = getApplicationContext();
CharSequence text = "Successfully Sent!";
int duration = Toast.LENGTH_LONG;
final Toast tost = Toast.makeText(context, text, duration);
tost.show();
}
mSubmitButton.OnClickListener(
should be 应该
mSubmitButton.setOnClickListener(
Edit. 编辑。 The method setOnClickListener expects an object that implements the
View.OnClickListener
interface: setOnClickListener方法需要一个实现
View.OnClickListener
接口的对象:
mSubmitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
Context context = getApplicationContext();
CharSequence text = "Successfully Sent!";
int duration = Toast.LENGTH_LONG;
final Toast tost = Toast.makeText(context, text, duration);
tost.show();
}
});
Replace 'this' with getApplicationContext() 用getApplicationContext()替换“ this”
@Override
public void onClick(View v) {
if (v.getId() == R.id.mSubmitButton) {
Toast.makeText(getApplicationContext(),"Successfully sent!",Toast.Length_LONG).show();
}
}
To display a toast when the button is clicked. 单击按钮时显示吐司。
mSubmitButton = (Button) findViewById(R.id.btnSubmit);
mSubmitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//SiteVisitDetails
Toast tea = Toast.makeText(getApplicationContext(), "Send", Toast.LENGTH_LONG);
tea.show();
}
});
There is misplaced parenthesis in your syntax, and a missing ;
您的语法中括号放错了位置,并且缺少了
;
and a misspelled setOnClickListener
method name. 以及拼写错误的
setOnClickListener
方法名称。
Change 更改
mSubmitButton.OnClickListener(new View.OnClickListener())
{
// ...
}
to 至
mSubmitButton.setOnClickListener(new View.OnClickListener()
{
// ...
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.