2016-03-07 20 views
-2

我不明白爲什麼會在最後一個括號中提示語法錯誤。不管我如何重新排列代碼,錯誤似乎都停留在代碼的末尾,並且不會消失。顯示了兩個錯誤。第一次:插入「;」完成FieldDeclaration。第二:插入「}」以完成ClassBody。如果有人可以請幫我弄清楚?謝謝!
'代碼末尾的連續語法錯誤

public class AKMainActivity extends Activity { 

    private static final String ACTIVITIES = "activities"; 
    private Spinner spinner1; 
    private EditText ETinfo; 
    private SharedPreferences savedActivities; 
    private ArrayList<String> details; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_akmain); 

     Spinner dropdown = (Spinner)findViewById(R.id.spinner1); 
     String[] items = new String[]{"Walking", "Running", "Stairs", "Generic"}; 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, items); 
     dropdown.setAdapter(adapter); 
     dropdown.setPrompt("Select Activity"); 

     ETinfo = (EditText)findViewById(R.id.ETinfo); 

     savedActivities = getSharedPreferences(ACTIVITIES, MODE_PRIVATE); 

     details = new ArrayList<String>(savedActivities.getAll().keySet()); 
     Collections.sort(details, String.CASE_INSENSITIVE_ORDER); 

     public OnClickListener saveButtonListener = new OnClickListener(){ 

      public void onClick(View v){ 

       addDetailedActivity(ETinfo.getText().toString()); 
       ETinfo.setText(""); 
      } 
      } 
+1

檢查您的每個開放大括號的花括號應該有一個緊密的大括號。 – Shriram

+0

雖然我已經驗證了所有打開和關閉的大括號,但它們似乎都很好? – Khan

+0

你錯過了一個}括號,最後有一個'最後刪除它 –

回答

0

要定義內部類,和缺少分號。我也會推薦@Override annotation`。類似的,

public OnClickListener saveButtonListener = new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     addDetailedActivity(ETinfo.getText().toString()); 
     ETinfo.setText(""); 
    } 
}; // <-- to close OnClickListener 
+0

謝謝!這就是我所錯過的 – Khan

0

給出的錯誤消息是因爲您缺少或有額外的大括號。嘗試在代碼的末尾添加一個大括號'}',如果問題仍然存在,請嘗試刪除它和一個大括號。大括號的作用就像限制者和代碼的分隔符。如果沒有正確給出,代碼將面臨編譯錯誤。

0

你在的代碼類似於結束:

public OnClickListener saveButtonListener = new OnClickListener(){ 

      public void onClick(View v){ 

       addDetailedActivity(ETinfo.getText().toString()); 
       ETinfo.setText(""); 
      } 
      } 

這就是所謂的匿名類實際上是在另一份聲明中說必須

結束wwith分號,

public OnClickListener saveButtonListener = new OnClickListener(){ 

      public void onClick(View v){ 

       addDetailedActivity(ETinfo.getText().toString()); 
       ETinfo.setText(""); 
      } 
      }; 
0
public class a extends Activity { 

    private static final String ACTIVITIES = "activities"; 
    private Spinner spinner1; 
    private EditText ETinfo; 
    private SharedPreferences savedActivities; 
    private ArrayList<String> details; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_akmain); 

     Spinner dropdown = (Spinner)findViewById(R.id.spinner1); 
     String[] items = new String[]{"Walking", "Running", "Stairs", "Generic"}; 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, items); 
     dropdown.setAdapter(adapter); 
     dropdown.setPrompt("Select Activity"); 

     ETinfo = (EditText)findViewById(R.id.ETinfo); 

     savedActivities = getSharedPreferences(ACTIVITIES, MODE_PRIVATE); 

     details = new ArrayList<String>(savedActivities.getAll().keySet()); 
     Collections.sort(details, String.CASE_INSENSITIVE_ORDER); 

     public OnClickListener saveButtonListener = new OnClickListener(){ 

      public void onClick(View v){ 

       addDetailedActivity(ETinfo.getText().toString()); 
       ETinfo.setText(""); 
      } 
     }; 

    } 
    } 

試試這個。你必須插入一個分號,因爲onClicklistener是一個局部變量聲明在聲明中。