我已经输入了“最终”声明,但是我收到了语法错误,我对如何纠正它们一无所知,我已经尝试了所有内容,但无济于事。我的类得到两个编辑文本字段中的字符串,如果选中该复选框,则将两个字符串保存到文件中,以便稍后调用,然后,如果编辑文本中没有任何内容,则显示一个吐司。如果这是他们的第一次,他们的数据(用户并传递它保存),如果他们在通过检查文件之前完成此操作,它将通过意图转到另一个类。哦,对不起我的错误代码,我是一个新的Java程序员,我试图尽可能整洁。其次,如果有一种比我更好的编码方式,请随意更改,
感谢。
标有^。
的错误代码:
Button send;
EditText user;
EditText pass;
CheckBox staySignedIn;
FileOutputStream Fos;
String a;
String b;
String string = a;
String string2 = b;
String FILENAME = "userandpass";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
send = (Button) findViewById(R.id.bLogIn);
user = (EditText) findViewById(R.id.eTuser);
pass = (EditText) findViewById(R.id.eTpassword);
staySignedIn = (CheckBox) findViewById(R.id.Cbstay);
send.setOnClickListener(this);
File file = getBaseContext().getFileStreamPath(FILENAME);
if (file.exists())
;
Intent i = new Intent(LogIn.this, ChatService.class);
startActivity(i); ^
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bLogIn:
if (pass.length() == 0)
Toast.makeText(this,
"Try to type in your username and password again!",
Toast.LENGTH_LONG).show();
else if (user.length() == 0)
Toast.makeText(this,
"Try to type in your username and password again!",
Toast.LENGTH_LONG).show();
else {
if (staySignedIn.isChecked()) {
String a = user.getText().toString();
String b = pass.getText().toString();
File f = new File(FILENAME);
try {
Fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
if (Fos != null) {
Fos.write(a.getBytes());
Fos.write(b.getBytes());
}
Fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace(); ^
finally {
String u = user.getText().toString();
String p = pass.getText().toString();
Bundle send = new Bundle();
send.putString("key", u);
send.putString("key1", p);
Intent c = new Intent(LogIn.this, logincheck.class);
c.putExtra("key", u);
c.putExtra("key1", p);
startActivity(c);
Toast.makeText(this, "Were signing you in!", Toast.LENGTH_LONG)
.show();
break;
}
}
}
} ^
错误
Syntax error, insert "}" to complete Block LogIn.java /Banana Phone/src/com/gta5news/bananaphone line 53 Java Problem
Description Resource Path Location Type
Syntax error, insert "}" to complete ClassBody LogIn.java /Banana Phone/src/com/gta5news/bananaphone line 36 Java Problem
Description Resource Path Location Type
Syntax error, insert "}" to complete MethodBody LogIn.java /Banana Phone/src/com/gta5news/bananaphone line 53 Java Problem
Description Resource Path Location Type
Syntax error, insert "}" to complete MethodBody LogIn.java /Banana Phone/src/com/gta5news/bananaphone line 107 Java Problem
答案 0 :(得分:6)
您没有关闭第二个catch语句:
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //<=HERE ADD }
finally {
常见结构是:
try{
}
catch(...){ // since jdk7 you can put all your exception on one line
}
finally{
}
编辑:
并替换:
else {
if (staySignedIn.isChecked()) {
通过
else if (staySignedIn.isChecked()) {
答案 1 :(得分:2)
你忘记了结束括号。
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
finally {
应该是:
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
由于您没有发布整个Java文件,我无法验证整个代码。您可以尝试在标记^
的代码段末尾添加另一个结束括号。
答案 2 :(得分:0)
你不能在try和catch块之间包含任何语句。你已经在你的公共“void onClick(View v)”函数中包含了“fos.close()。