括号后预期的类或接口

时间:2015-09-16 00:44:12

标签: android

我无法想象这个,但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);
}
}

1 个答案:

答案 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);
    }
}