2015-09-16 2 views
0

Я не могу это изобразить, но скобка перед тем, как onCreateOptionsMenu говорит, что пространство справа от него ожидает класса или интерфейса. помогите, я просто не могу это понять! я действительно не знаю, что происходит.класс или интерфейс, ожидаемый после скобки

package com.spizer.mizer2; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.ExpandableListView; 

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ExpandableListView; 
import android.widget.ExpandableListView.OnChildClickListener; 
import android.widget.ExpandableListView.OnGroupClickListener; 
import android.widget.ExpandableListView.OnGroupCollapseListener; 
import android.widget.ExpandableListView.OnGroupExpandListener; 
import android.widget.Toast; 

public class DifficultyMenu extends AppCompatActivity { 

private int T1; 
private int T2; 
private int T3; 
private int T4; 

private String S1; 
private String S2; 
private String S3; 
private String S4; 


ExpandableListAdapter listAdapter; 
ExpandableListView expListView; 
List<String> listDataHeader; 
HashMap<String, List<String>> listDataChild; 

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

    // get the list view 
    expListView = (ExpandableListView) findViewById(R.id.lvExp); 

    // preparing list data 
    prepareListData(); 

    listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild); 

    // setting list adapter 
    expListView.setAdapter(listAdapter); 

    // List view Group click listener 
    expListView.setOnGroupClickListener(new OnGroupClickListener() { 

     @Override 
     public boolean onGroupClick(ExpandableListView parent, View v, 
            int groupPosition, long id) { 
      // Toast.makeText(getApplicationContext(), 
      // "Group Clicked " + listDataHeader.get(groupPosition), 
      // Toast.LENGTH_SHORT).show(); 
      return false; 
     } 
    }); 

    // List view Group expanded listener 
    expListView.setOnGroupExpandListener(new OnGroupExpandListener() { 

     @Override 
     public void onGroupExpand(int groupPosition) { 
      Toast.makeText(getApplicationContext(), 
        listDataHeader.get(groupPosition) + " Expanded", 
        Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    // List view Group collapsed listener 
    expListView.setOnGroupCollapseListener(new OnGroupCollapseListener() { 

     @Override 
     public void onGroupCollapse(int groupPosition) { 
      Toast.makeText(getApplicationContext(), 
        listDataHeader.get(groupPosition) + " Collapsed", 
        Toast.LENGTH_SHORT).show(); 

     } 
    }); 

    // List view on child click listener 
    expListView.setOnChildClickListener(new OnChildClickListener() { 

     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, 
            int groupPosition, int childPosition, long id) { 
      // TODO Auto-generated method stub 
      Toast.makeText(
        getApplicationContext(), 
        listDataHeader.get(groupPosition) 
          + " : " 
          + listDataChild.get(
          listDataHeader.get(groupPosition)).get(
          childPosition), Toast.LENGTH_SHORT) 
        .show(); 
      return false; 
     } 
    }); 
} 

    /* 
* Preparing the list data 
*/ 
private void prepareListData() { 
    listDataHeader = new ArrayList<String>(); 
    listDataChild = new HashMap<String, List<String>>(); 

    // Adding child data 
    listDataHeader.add("AdditionDifficulty"); 
    listDataHeader.add("SubtractionDifficulty"); 
    listDataHeader.add("MultiplicationDifficulty"); 
    listDataHeader.add("DivisionDifficulty"); 

    // Adding child data 
    List<String> AdditionDifficulty = new ArrayList<String>(); 
    while(true) { 
     if(T1<10) { 
      String S1 = Integer.toString(T1); 
      AdditionDifficulty.add(S1); 
      T1++; 
      continue; 
     } 
     else { 
      break; 
     } 
    } 

    List<String> SubtractionDifficulty = new ArrayList<String>(); 
    while(true) { 
     if(T2<10) { 
      String S2 = Integer.toString(T2); 
      SubtractionDifficulty.add(S2); 
      T2++; 
      continue; 
     } 
     else { 
      break; 
     } 
    } 

    List<String> MultiplicationDifficulty = new ArrayList<String>(); 
    while(true) { 
     if(T3<10) { 
      String S3 = Integer.toString(T3); 
      MultiplicationDifficulty.add(S3); 
      T3++; 
      continue; 
     } 
     else { 
      break; 
     } 
    } 

    List<String> DivisionDifficulty = new ArrayList<String>(); 
    while(true) { 
     if(T4<10) { 
      String S4 = Integer.toString(T4); 
      DivisionDifficulty.add(S4); 
      T4++; 
      continue; 
     } 
     else { 
      break; 
     } 
    } 

    listDataChild.put(listDataHeader.get(0), AdditionDifficulty); // Header,  Child data 
    listDataChild.put(listDataHeader.get(1), SubtractionDifficulty); 
    listDataChild.put(listDataHeader.get(2), MultiplicationDifficulty); 
    listDataChild.put(listDataHeader.get(3), DivisionDifficulty); 
} 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_difficulty_menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
} 
+2

Когда вы кодируете, убедитесь, что вы делаете отступы правильно. Обычно, если вы используете IDE, например Eclipse или Android Studio, он автоматически будет отступом для вас. Похоже, вы, возможно, добавили слишком близкую фигуру прямо перед методом. Если он правильно отпечатан, вы можете сразу заметить, что вы получили метод, в котором должен быть класс. – mmking

+0

вы можете отправить ответ, исправляющий мою ошибку, потому что я не уверен, что понимаю вас правильно. –

+0

Я имею в виду, что если ваш код был правильно отступом, все фигурные скобки на том же уровне отступа были бы одинаковыми, поэтому все по одному отступу было бы классами, и все, что было бы по другому отступу, было бы методами, например. Тогда вы поняли бы, что у вас есть метод на том же уровне, что и класс. – mmking

ответ

2

Я думаю, что вторая скобка прямо перед вашим методом является посторонней. Ваш метод onCreateOptionsMenu тогда думает, что он находится вне любого класса, который не имеет никакого значения в Java.

listDataChild.put(listDataHeader.get(3), DivisionDifficulty); 
} 
} // Remove me! 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    ... 
} 

Вот ваш код с соответствующим отступом. Это делает более ясным, что класс активности заканчивается слишком рано:

package com.spizer.mizer2; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.ExpandableListView; 

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ExpandableListView; 
import android.widget.ExpandableListView.OnChildClickListener; 
import android.widget.ExpandableListView.OnGroupClickListener; 
import android.widget.ExpandableListView.OnGroupCollapseListener; 
import android.widget.ExpandableListView.OnGroupExpandListener; 
import android.widget.Toast; 

public class DifficultyMenu extends AppCompatActivity { 

    private int T1; 
    private int T2; 
    private int T3; 
    private int T4; 

    private String S1; 
    private String S2; 
    private String S3; 
    private String S4; 

    ExpandableListAdapter listAdapter; 
    ExpandableListView expListView; 
    List<String> listDataHeader; 
    HashMap<String, List<String>> listDataChild; 

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

     // get the list view 
     expListView = (ExpandableListView) findViewById(R.id.lvExp); 

     // preparing list data 
     prepareListData(); 

     listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild); 

     // setting list adapter 
     expListView.setAdapter(listAdapter); 

     // List view Group click listener 
     expListView.setOnGroupClickListener(new OnGroupClickListener() { 
      @Override 
      public boolean onGroupClick(ExpandableListView parent, View v, 
        int groupPosition, long id) { 
       // Toast.makeText(getApplicationContext(), 
       // "Group Clicked " + listDataHeader.get(groupPosition), 
       // Toast.LENGTH_SHORT).show(); 
       return false; 
      } 
     }); 

     // List view Group expanded listener 
     expListView.setOnGroupExpandListener(new OnGroupExpandListener() { 
      @Override 
      public void onGroupExpand(int groupPosition) { 
       Toast.makeText(getApplicationContext(), 
         listDataHeader.get(groupPosition) + " Expanded", 
         Toast.LENGTH_SHORT).show(); 
      } 
     }); 

     // List view Group collapsed listener 
     expListView.setOnGroupCollapseListener(new OnGroupCollapseListener() { 
      @Override 
      public void onGroupCollapse(int groupPosition) { 
       Toast.makeText(getApplicationContext(), 
         listDataHeader.get(groupPosition) + " Collapsed", 
         Toast.LENGTH_SHORT).show(); 

      } 
     }); 

     // List view on child click listener 
     expListView.setOnChildClickListener(new OnChildClickListener() { 
      @Override 
      public boolean onChildClick(ExpandableListView parent, View v, 
        int groupPosition, int childPosition, long id) { 
       // TODO Auto-generated method stub 
       Toast.makeText(
         getApplicationContext(), 
         listDataHeader.get(groupPosition) 
           + " : " 
           + listDataChild.get(listDataHeader.get(groupPosition)).get(childPosition), Toast.LENGTH_SHORT) 
         .show(); 
       return false; 
      } 
     }); 
    } 

    /* 
    * Preparing the list data 
    */ 
    private void prepareListData() { 
     listDataHeader = new ArrayList<String>(); 
     listDataChild = new HashMap<String, List<String>>(); 

     // Adding child data 
     listDataHeader.add("AdditionDifficulty"); 
     listDataHeader.add("SubtractionDifficulty"); 
     listDataHeader.add("MultiplicationDifficulty"); 
     listDataHeader.add("DivisionDifficulty"); 

     // Adding child data 
     List<String> AdditionDifficulty = new ArrayList<String>(); 
     while(true) { 
      if(T1<10) { 
       String S1 = Integer.toString(T1); 
       AdditionDifficulty.add(S1); 
       T1++; 
       continue; 
      } 
      else { 
       break; 
      } 
     } 

     List<String> SubtractionDifficulty = new ArrayList<String>(); 
     while(true) { 
      if(T2<10) { 
       String S2 = Integer.toString(T2); 
       SubtractionDifficulty.add(S2); 
       T2++; 
       continue; 
      } 
      else { 
       break; 
      } 
     } 

     List<String> MultiplicationDifficulty = new ArrayList<String>(); 
     while(true) { 
      if(T3<10) { 
       String S3 = Integer.toString(T3); 
       MultiplicationDifficulty.add(S3); 
       T3++; 
       continue; 
      } 
      else { 
       break; 
      } 
     } 

     List<String> DivisionDifficulty = new ArrayList<String>(); 
     while(true) { 
      if(T4<10) { 
       String S4 = Integer.toString(T4); 
       DivisionDifficulty.add(S4); 
       T4++; 
       continue; 
      } 
      else { 
       break; 
      } 
     } 

     listDataChild.put(listDataHeader.get(0), AdditionDifficulty); // Header,  Child data 
     listDataChild.put(listDataHeader.get(1), SubtractionDifficulty); 
     listDataChild.put(listDataHeader.get(2), MultiplicationDifficulty); 
     listDataChild.put(listDataHeader.get(3), DivisionDifficulty); 
    } 
} // The problematic brace 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_difficulty_menu, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 
+0

ive попытался сделать это, но его предполагалось закрыть onCreate back up наверху –

+0

'onCreate' закрыт скобкой над методом' prepareListData', не так ли? – stkent

+0

хорошо, я удалил его, потому что он будет привязан к скобе, прикрепленному к onCreate вверху, когда он должен быть прикреплен к тому, который находится внизу, до onCreateoptionsmenu, и теперь прямо там, где точка с запятой находится над ним, он говорит, что ожидалось –

Смежные вопросы