2011-06-28 96 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

哇,幾乎相同。當我輸入我的答案時,我一定錯過了它。 –