2011-06-28 64 views
0

所以我正在对我的应用程序,我只是试图声明一个新的字符串数组。出于某种原因,它希望额外的支架在最后关闭类(即使支架很好),并且在“private String [] addSentences = new String [3];”之后如果要求“{”而不是“;”。换句话说,它想要关闭一些东西......我不明白。也许你们可以帮忙。问题与括号和数组声明

package org.chinesetones.teacher; 

import java.util.ArrayList; 
import android.app.Activity; 
import android.app.Dialog; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Gravity; 
import android.view.View; 
import android.widget.Toast; 
import android.view.View; 
import android.view.View.OnClickListener; 
import org.chinesetones.teacher.Sentence; 

public class Game extends Activity implements OnClickListener { 
private String[] addStrings = new String[3]; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.game); 

// Setup button listeners... 
View nextButton = findViewById(R.id.next_button); 
nextButton.setOnClickListener(this); 
View repeatButton = findViewById(R.id.repeat_button); 
repeatButton.setOnClickListener(this); 
} 
public void onClick(View v){ 
    switch(v.getId()) { 
    case R.id.next_button: 
     giveSentence(); 
     break; 
    case R.id.repeat_button: 
     playSentence(); 
     break; 
    } 
} 
private ArrayList<Sentence> sentences; 
private String[] addSentences = new String[3]; 
addSentences[0] = "Hi"; 
addSentences[1] = "No"; 
addSentences[2] = "Yes"; 
} 

giveSentence()和playSentence()尚未创建。错误在下面。

描述资源路径位置类型 令牌语法错误 “;” 此令牌Game.java/ChineseTones/SRC /组织/ chinesetones /教师39行的Java问题

描述资源路径位置类型 后,预计{语法错误,插入“}”以完成ClassBody Game.java/ChineseTones/src/org/chinesetones/teacher line 43 Java问题

谢谢!

回答

1

您不能初始化类字段的方式..

变化

private String[] addSentences = new String[3]; 
addSentences[0] = "Hi"; 
addSentences[1] = "No"; 
addSentences[2] = "Yes"; 

private String[] addSentences = {"Hi", "No", "Yes"}; 

另一种选择是只是做

private String[] addSentences = new String[3]; 

和初始化在cla中的数组ss构造函数。

public Game() 
{ 
    addSentences[0] = "Hi"; 
    addSentences[1] = "No"; 
    addSentences[2] = "Yes"; 
    ... 
} 
+0

好的,谢谢,如果我有大约500个这个数组的索引,我会不得不像这样手动添加它们还是有其他方法? – lespommes

+0

@Wes看看我的编辑答案是否有帮助。你可以在构造函数中初始化数组元素。 –

+0

如果值(字符串你正在存储)是不同的(就像你的情况),那么你将不得不手动添加它们。如果有某种形式的公式生成需要存储的值,则可以在array.length()上运行一个循环并存储它们。 – aps

0

您只能在方法之外进行声明。因此,您的addSentence分配

addSentences[0] = "Hi"; 
addSentences[1] = "No"; 
addSentences[2] = "Yes"; 

必须位于方法,构造函数或声明的一部分。

对于像你的一个小的,静态定义的列表,你可以这样做:

private String[] addSentences = {"Hi","No","Yes"}; 

如果你有你把逻辑放到你的构造更大的初始化列表。

public Game(){ 
    addSentences[0] = "Hi"; 
    addSentences[1] = "No"; 
    addSentences[2] = "Yes"; 
    .... 
} 
+1

这就是第一个答案中提到的一切。你没有看到它吗? – 2011-06-28 19:09:21

+0

哇,几乎相同。当我输入我的答案时,我一定错过了它。 –