我无法想象这个,但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);
}
}
答案 0 :(得分: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);
}
}