java - android studio 上 toast 的按钮点击事件错误

标签 java android

此代码无法在 Android Studio 上运行。我只是希望它在单击按钮时显示 toast 。请帮忙。代码附在下面:

我是 Android 开发新手,很难弄清楚这一点。我认为问题是一个愚蠢的语法错误或 undefined variable 。另外,我如何定义“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);
}
}    

错误是:

“mSubmitButton...”错误

Expected class or package
'OnClickListener' is abstract;cannot be instantiated

“@override public void onClick(View v){...”的错误

Annotations are not allowed here
Identifier or type expected

“public void addItemsToProductSpinner()...”错误

";" expected
Cannot resolve symbol "v"
unexpected token

最佳答案

这是错误的v == mSubmitButton 在java中,只能用运算符==等于原始类型。对于对象,您需要使用 equals() 方法。 替换:

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();
        }
    }
    }

关于java - android studio 上 toast 的按钮点击事件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26398217/

相关文章:

java - 即使在 apache flink 中实现 AppendTableStream 接口(interface)后仍出现以下错误

java - Android:如何检查使用哪个相机拍摄图像

java - Android 抽屉导航 fragment

java - Eclipse 中的 "import java.beans.XMLEncoder"问题

java - 将 LinkedList 对象聚合/连接/连接到字符串 - Java

java - 初始化此程序时如何禁用 Java Swing JButton?

java - 使用 JAXB 将具有不同架构的 XML 映射到相同的类

Android 将 unicode 字符串设置为 textview

android - 将 float 操作按钮集成到带有工具栏的线性布局中

android - java.lang.NoClassDefFoundError:无法解决以下问题:Lcom/mapbox/android/telemetry/MapboxTelemetry;