Java android中的语法错误
我写了这个方法,但不断得到一个错误,说: 令牌“int”上的语法错误,应为@ 语法错误,插入“EnumBody”以完成BlockStatementJava android中的语法错误,java,android,syntax,Java,Android,Syntax,我写了这个方法,但不断得到一个错误,说: 令牌“int”上的语法错误,应为@ 语法错误,插入“EnumBody”以完成BlockStatement @Override public int calculateCurrency() { int[] currency = getResources().getIntArray(R.array.currenciesvalues); return Integer.parseInt((String) spinner1.getSelected
@Override
public int calculateCurrency()
{
int[] currency = getResources().getIntArray(R.array.currenciesvalues);
return Integer.parseInt((String) spinner1.getSelectedItem()) / Integer.parseInt((String)spinner2.getSelectedItem());
}
这是该方法所在的完整java类
package com.msc.conv;
import java.text.DecimalFormat;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class CurrencyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.currency);
final Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
final Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
final EditText etResult = (EditText) findViewById(R.id.etResult);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.currencies, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener(){
//public class MyOnItemSelectedListener implements OnItemSelectedListener{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
//String str = parent.getItemAtPosition(pos).toString();
//etResult.setText(str);
}
@Override
public void onNothingSelected(AdapterView parent){
//Do nothing
}
});
spinner2.setAdapter(adapter);
spinner2.setOnItemSelectedListener(new OnItemSelectedListener(){
//public class MyOnItemSelectedListener implements OnItemSelectedListener{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
//String str = parent.getItemAtPosition(pos).toString();
//etResult.setText(str);
}
@Override
public void onNothingSelected(AdapterView parent){
//Do nothing
}
});
final EditText editCurr = (EditText) findViewById(R.id.etamount);
Button convert = (Button) findViewById(R.id.btn_convert);
convert.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
double curr = Double.valueOf(editCurr.getText().toString());
double result2 = Double.valueOf(spinner1.toString()) / Double.valueOf(spinner2.toString());
double result = curr * result2;
etResult.setText(String.valueOf(result));
}
});
public int calculateCurrency()
{
int[] currency = getResources().getIntArray(R.array.currenciesvalues);
return Integer.parseInt((String) spinner1.getSelectedItem()) / Integer.parseInt((String)spinner2.getSelectedItem());//currenciesvalues[spinner2.getSelectedItemPosition()];
}
Button homeBtn = (Button) findViewById(R.id.btn_currencyhome);
homeBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(new Intent(CurrencyActivity.this, MainActivity.class));
}
});
}
package com.msc.conv;
导入java.text.DecimalFormat;
导入android.app.Activity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemSelectedListener;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Spinner;
导入android.widget.Toast;
公共类CurrencyActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.currency);
最终喷丝器喷丝器1=(喷丝器)findViewById(R.id.spinner1);
最终喷丝器喷丝器2=(喷丝器)findViewById(R.id.spinner2);
最终EditText etResult=(EditText)findViewById(R.id.etResult);
ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.Currences,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头1.设置适配器(适配器);
spinner1.setOnItemSelectedListener(新的OnItemSelectedListener(){
//公共类MyOnItemSelectedListener实现OnItemSelectedListener{
@凌驾
已选择公共位置(AdapterView父项、视图、整数位置、长id){
//String str=parent.getItemAtPosition(pos.toString();
//etResult.setText(str);
}
@凌驾
未选择公共无效(AdapterView父级){
//无所事事
}
});
喷丝头2.设置适配器(适配器);
spinner2.setOnItemSelectedListener(新的OnItemSelectedListener(){
//公共类MyOnItemSelectedListener实现OnItemSelectedListener{
@凌驾
已选择公共位置(AdapterView父项、视图、整数位置、长id){
//String str=parent.getItemAtPosition(pos.toString();
//etResult.setText(str);
}
@凌驾
未选择公共无效(AdapterView父级){
//无所事事
}
});
final EditText editCurr=(EditText)findViewById(R.id.etamount);
按钮转换=(按钮)findViewById(R.id.btn\u转换);
convert.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
double curr=double.valueOf(editCurr.getText().toString());
double result2=double.valueOf(spinner1.toString())/double.valueOf(spinner2.toString());
双结果=当前*结果2;
etResult.setText(String.valueOf(result));
}
});
公共整数计算当前值()
{
int[]currency=getResources().getIntArray(R.array.currencesvalues);
返回Integer.parseInt((字符串)spinner1.getSelectedItem())/Integer.parseInt((字符串)spinner2.getSelectedItem());//currencesvalues[spinner2.getSelectedItemPosition()];
}
按钮homeBtn=(按钮)findViewById(R.id.btn\u currencyhome);
homeBtn.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
//TODO自动生成的方法存根
startActivity(新意图(CurrencyActivity.this、MainActivity.class));
}
});
}
}很难说,因为代码格式不好,但我怀疑这句话就是问题所在(就在您最初发布的代码上方):
这个代码根本不属于一个方法或构造函数——它只是在类的中间。在一个类中唯一可以直接使用的是字段声明、方法、构造函数、析构函数、嵌套类和初始化器。 我怀疑你实际上是想把它放在构造函数中。与
homeBtn
结尾的代码一样
因此,作为一个简短的示例,此代码无效:
public class InvalidCode {
private Button button = new Button();
button.setText("Foo");
}
但这是有效的:
public class ValidCode {
private Button button = new Button();
public Button() {
button.setText("Foo");
}
}
创建类时,是否创建了Enum类?请提供更多的上下文。在正确的上下文中,这对我来说似乎没问题。@buzcek否我没有创建Enum类,我必须创建吗?@Akki:在您向我们展示周围的代码之前,我们只是猜测所有内容。问题可能在于此代码出现的位置。请尝试删除e的方法体例如,仅将其替换为
return 0;
(我注意到您实际上并没有使用currency
无论如何…@JonSkeet如果我移除主体并替换为return 0,我仍然会遇到同样的问题
public class ValidCode {
private Button button = new Button();
public Button() {
button.setText("Foo");
}
}