2012-03-05 77 views
0

我得到这个错误:简单代码的简单错误,但我不明白吗?

Syntax error on token ";", , expected 

在这个非常简单的代码:

TextView bio = (TextView)findViewById(R.id.biographyText); 

    String bioText = new String(); 

    bioText = bio.getText().toString(); 

错误是分号后 “新的String()”

有什么不对的?最后,如果有人点击了TextView,它会将文本更改为他们输入的内容。

这里是整个Java类:

public class Profile extends Activity{ 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    } 


TextView bio = (TextView)findViewById(R.id.biographyText); 

String bioText = new String(); 

bioText = bio.getText().toString(); 


} 
+0

用整个Java类编辑OP。 – Cole 2012-03-06 00:01:04

+0

我倾向于建议R.id.biographyText参数未按照您的IDE /仿真器的预期进行处理?也许你的classpaths/lib关联有问题?只是想超越,我同意@第一眼只有我提到的想法才会想到 – 2012-03-06 00:01:57

+0

这就是让我困惑的原因。错误在谈论那个分号,但它绝对是标准的代码。没什么太难的。 @BrandtSolovij我会清理项目,看看是否有效。 – Cole 2012-03-06 00:02:50

回答

2

跳到最后一个代码块为简单的答案

你不应该实例bioText那样,摆脱

new String() 

只是让它

String bioText =""; 
bioText = bio.getText().toString(); 

你不应该手工实例化一个字符串,你可以将它实例化为“”,如果你想要的话,但它不是必需的。但是,要解决您的问题,这很简单。下面的代码必须在方法

TextView bio = (TextView)findViewById(R.id.biographyText); 
String bioText = ""; 
bioText = bio.getText().toString(); 

然而,这仍然无法正常工作,看到你永远不会调用的setContentView()中的onCreate()。主要的问题是该行

bioText = bio.getText().toString(); 

你不能实例化一个对象,比在声明其他的方法之外。为了解决这个问题,简单使它成为

String bioText = bio.getText().toString(); 
+0

谢谢!我甚至没有意识到我还没有设置setContentView。 – Cole 2012-03-06 00:49:18