【问题标题】:I'm getting 2 errors on } [closed]我在 } 上遇到 2 个错误 [关闭]
【发布时间】:2013-11-12 16:09:46
【问题描述】:

呵呵,谢谢大家的回复,我在这方面很新,你们都帮了我很多。 Thigns 现在已修复,应用程序也在按我的意愿运行。我想我无法结束这个问题,但它对我来说很重要^^

我有一个可展开的列表视图。

下面是我的 MainActivity.java

其中有 2 个错误,都在 } 上。

我确信它们放置正确。尝试更新软件等,但由于某种原因我无法让错误消失。

它是最后一个 } 和之前的一个 return false }

代码从这里开始:

package com.example.sk17;


import com.example.adapterr.*;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
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 MainActivity extends Activity {

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_main);

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

    // preparing list data
    prepareListData();

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

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



}


private OnChildClickListener myListItemClicked =  new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
   Toast.makeText(MainActivity.this, "Clicked On Child"+childPosition,
          Toast.LENGTH_SHORT).show();
  // Go to child #0 specific class.
  Intent child0Intent = new Intent(this, activity0.class);
  startActivity(Intent);

}

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

    // Adding child data
    listDataHeader.add("1 SAFETY PRECAUTIONS");
    listDataHeader.add("2 MACHINE FAMILIARIZATION");
    listDataHeader.add("3 MACHINE OPERATION");
    listDataHeader.add("4 MAINTENANCE");
    listDataHeader.add("5 TRANSPORTATION");
    listDataHeader.add("6 SPECIFICATIONS");
    listDataHeader.add("7 OPTIONAL EQUIPMENT");
    listDataHeader.add("8 TROUBLESHOOTING");
    listDataHeader.add("9 SPECIAL PROCEDURES");

    // Adding child data
    List<String> SAFETYPRECAUTIONS = new ArrayList<String>();
    SAFETYPRECAUTIONS.add("1.1 GENERAL SAFETY INFORMATION");
    SAFETYPRECAUTIONS.add("1.2 SAFETY PRECAUTIONS");
    SAFETYPRECAUTIONS.add("1.3 PRE-START SAFETY");
    SAFETYPRECAUTIONS.add("1.4 SAFETY DURING OPERATION");
    SAFETYPRECAUTIONS.add("1.5 INSPECTION & MAINTENANCE SAFETY");
    SAFETYPRECAUTIONS.add("1.6 BATTERY SAFETY");
    SAFETYPRECAUTIONS.add("1.7 WARNING LABELS & DECALS");
    SAFETYPRECAUTIONS.add("1.8 PROHIBITED MACHINE OPERATION");
    SAFETYPRECAUTIONS.add("1.9 END OF WORK SHIFT SAFETY");
    SAFETYPRECAUTIONS.add("1.10 TRANSPORTATION");
    SAFETYPRECAUTIONS.add("1.11 TOWING THE MACHINE");

    List<String> MACHINEFAMILIARIZATION = new ArrayList<String>();
    MACHINEFAMILIARIZATION.add("2.1 FAMILIARIZATION");
    MACHINEFAMILIARIZATION.add("2.2 GENERAL MACHINE NOMENCLATURE");
    MACHINEFAMILIARIZATION.add("2.3 OPERATOR CAB NOMENCLATURE");
    MACHINEFAMILIARIZATION.add("2.4 COMPONENT & CONTROLS NOMENCLATURE");

    List<String> MACHINEOPERATION = new ArrayList<String>();
    MACHINEOPERATION.add("3.1 BASIC MACHINE OPERATION");

    List<String> MAINTENANCE = new ArrayList<String>();
    MAINTENANCE.add("4.1 GENERAL INFORMATION");
    MAINTENANCE.add("4.2 GENERAL SAFETY & PRECAUTIONS");
    MAINTENANCE.add("4.3 LUBRICANT, FUEL & COOLANT SPECIFICATIONS");
    MAINTENANCE.add("4.4 MAINTENANCE PARTS");
    MAINTENANCE.add("4.5 ACCESSORY TOOLS");
    MAINTENANCE.add("4.6 TORQUE SPECIFICATIONS FOR BOLTS & NUTS");
    MAINTENANCE.add("4.7 TORQUE SPECIFICATIONS FOR JOINTS & HYDRAULIC HOSES");
    MAINTENANCE.add("4.8 INSTALLING HYDRAULIC HOSE AND PIPE JOINT FITTINGS");
    MAINTENANCE.add("4.9 RELEASING INTERNAL PRESSURE OF HYDRAULIC SYSTEM");
    MAINTENANCE.add("4.10 BLEEDING AIR IN FUEL SYSTEM");
    MAINTENANCE.add("4.11 REPLACING RUBBER CRAWLER BELT");
    MAINTENANCE.add("4.12 INSPECTION & MAINTENANCE CHART");
    MAINTENANCE.add("4.13 OTHER MAINTENANCE - PERFORMED WHEN REQUIRED");
    MAINTENANCE.add("4.14 PRE-START (EVERY 8 HOURS) INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.15 50-HOUR (WEEKLY) INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.16 250-HOUR (3-MONTH) INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.17 500-HOUR (6-MONTH) INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.18 1000-HOUR (12-MONTH) INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.19 2000-HOUR INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.20 5000-HOUR INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.21 INSPECTION / MAINTENANCE CHECK LIST");


    List<String> TRANSPORTATION = new ArrayList<String>();
    TRANSPORTATION.add("5.1 PREPARING FOR MACHINE TRANSPORTATION.");
    TRANSPORTATION.add("5.2 LIFTING THE MACHINE");
    TRANSPORTATION.add("5.3 WEIGHT AND DIMENSION SPECIFICATIONS");

    List<String> SPECIFICATIONS = new ArrayList<String>();
    SPECIFICATIONS.add("6.1 GENERAL SPECIFICATIONS");

    List<String> OPTIONALEQUIPMENT = new ArrayList<String>();
    OPTIONALEQUIPMENT.add("7.1 OPERATION OF HYDRAULIC BREAKER AND NIBBLER");
    OPTIONALEQUIPMENT.add("7.2 SAFETY PRECAUTIONS");
    OPTIONALEQUIPMENT.add("7.3 PERIODIC INSPECTION AND MAINTENANCE INTERVAL");

    List<String> TROUBLESHOOTING = new ArrayList<String>();
    TROUBLESHOOTING.add("8.1 GENERAL TROUBLESHOOTING");

    List<String> SPECIALPROCEDURES = new ArrayList<String>();
    SPECIALPROCEDURES.add("9.1 MOVING A DISABLED MACHINE.");
    SPECIALPROCEDURES.add("9.2 RELEASING LOCK ON TRAVEL MOTOR");


    listDataChild.put(listDataHeader.get(0), SAFETYPRECAUTIONS); // Header, Child data
    listDataChild.put(listDataHeader.get(1), MACHINEFAMILIARIZATION);
    listDataChild.put(listDataHeader.get(2), MACHINEOPERATION);
    listDataChild.put(listDataHeader.get(3), MAINTENANCE);
    listDataChild.put(listDataHeader.get(4), TRANSPORTATION);
    listDataChild.put(listDataHeader.get(5), SPECIFICATIONS);
    listDataChild.put(listDataHeader.get(6), OPTIONALEQUIPMENT);
    listDataChild.put(listDataHeader.get(7), TROUBLESHOOTING);
    listDataChild.put(listDataHeader.get(8), SPECIALPROCEDURES);
}


}

【问题讨论】:

  • 你少了一个分号。
  • 请善待我们的眼睛并删除不必要的代码...
  • 我猜你没有使用合适的 IDE,否则你不会遇到这样的问题。查看此链接:developer.android.com/sdk/index.html
  • @X.L.Ant:这是一个明智的要求,但如果他在弄清楚他的牙套嵌套时遇到了麻烦,那么他可能无法正确地 i> 删除不必要的代码(他会删除太多或太少而无用)。
  • 这个问题的前提被缺少的分号所排除,这否定了它可能与未来访问者的任何相关性。这里不需要新的答案,结束。

标签: java android eclipse expandablelistview


【解决方案1】:

你的大括号正确,正确的缩进会告诉你:

private OnChildClickListener myListItemClicked =  new OnChildClickListener() { // open 1
  @Override
  public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // open 2
    Toast.makeText(MainActivity.this, "Clicked On Child"+childPosition,
          Toast.LENGTH_SHORT).show();
    // Go to child #0 specific class.
    Intent child0Intent = new Intent(this, activity0.class);
    startActivity(Intent);

  } // close 2
  return false;
} // close 1

这意味着return false;在匿名内部类的类主体中,而它应该方法主体中

private OnChildClickListener myListItemClicked =  new OnChildClickListener() {1
  @Override
  public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
     Toast.makeText(MainActivity.this, "Clicked On Child"+childPosition,
          Toast.LENGTH_SHORT).show();
    // Go to child #0 specific class.
    Intent child0Intent = new Intent(this, activity0.class);
    startActivity(Intent);

    return false;
  }
};

【讨论】:

  • 在上面标有// close 1 的大括号后面还需要一个分号。如果您使用的是 Eclipse,您可以全选并按 Ctrl-I 以自动缩进所有内容,这将有助于突出这些错误。
  • 您没有在 return 语句下方的大括号后放置右括号
  • @Tenfour04:啊,是的,你说得对,我解决了这个问题。
【解决方案2】:

改成

private OnChildClickListener myListItemClicked =  new OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView arg0, View arg1, int arg2,
                int arg3, long arg4) {
            // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, "Clicked On Child"+childPosition,
                Toast.LENGTH_SHORT).show();
               // Go to child #0 specific class.
               Intent child0Intent = new Intent(this, activity0.class);
               startActivity(Intent);
            return false;
        }

    }; // statement ends with ;

这是一个显式初始化后的声明,必须以;结尾

【讨论】:

  • 你能解释一下为什么他需要最后一个分号吗?
  • 因为onChildClick后面有个括号需要关闭
  • @RahulGupta 只是因为每个声明,也跟着显式初始化,需要跟一个分号
【解决方案3】:
private OnChildClickListener myListItemClicked =  new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
   Toast.makeText(MainActivity.this, "Clicked On Child"+childPosition,
          Toast.LENGTH_SHORT).show();
   // Go to child #0 specific class.
   Intent child0Intent = new Intent(this, activity0.class);
   startActivity(Intent);

}

  return false;
}

这应该是:

private OnChildClickListener myListItemClicked =  new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
   Toast.makeText(MainActivity.this, "Clicked On Child"+childPosition,
          Toast.LENGTH_SHORT).show();
   // Go to child #0 specific class.
   Intent child0Intent = new Intent(this, activity0.class);
   startActivity(Intent);

   return false;
  }
}

你在方法外使用了 return...

【讨论】:

  • 谢谢大家3,我现在看到了,非常感谢帮助:D
  • 你忘记了最后一个分号 :)
【解决方案4】:

这是正确的代码:-

    package com.example.sk17;


import com.example.adapterr.*;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
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 MainActivity extends Activity {
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_main);

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

    // preparing list data
    prepareListData();

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

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



}


private OnChildClickListener myListItemClicked =  new OnChildClickListener() {
    @Override
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
        Toast.makeText(MainActivity.this, "Clicked On Child"+childPosition,
                Toast.LENGTH_SHORT).show();
        // Go to child #0 specific class.
        Intent child0Intent = new Intent(this, activity0.class);
        startActivity(Intent);
        return false; // return statement added here
    }


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

    // Adding child data
    listDataHeader.add("1 SAFETY PRECAUTIONS");
    listDataHeader.add("2 MACHINE FAMILIARIZATION");
    listDataHeader.add("3 MACHINE OPERATION");
    listDataHeader.add("4 MAINTENANCE");
    listDataHeader.add("5 TRANSPORTATION");
    listDataHeader.add("6 SPECIFICATIONS");
    listDataHeader.add("7 OPTIONAL EQUIPMENT");
    listDataHeader.add("8 TROUBLESHOOTING");
    listDataHeader.add("9 SPECIAL PROCEDURES");

    // Adding child data
    List<String> SAFETYPRECAUTIONS = new ArrayList<String>();
    SAFETYPRECAUTIONS.add("1.1 GENERAL SAFETY INFORMATION");
    SAFETYPRECAUTIONS.add("1.2 SAFETY PRECAUTIONS");
    SAFETYPRECAUTIONS.add("1.3 PRE-START SAFETY");
    SAFETYPRECAUTIONS.add("1.4 SAFETY DURING OPERATION");
    SAFETYPRECAUTIONS.add("1.5 INSPECTION & MAINTENANCE SAFETY");
    SAFETYPRECAUTIONS.add("1.6 BATTERY SAFETY");
    SAFETYPRECAUTIONS.add("1.7 WARNING LABELS & DECALS");
    SAFETYPRECAUTIONS.add("1.8 PROHIBITED MACHINE OPERATION");
    SAFETYPRECAUTIONS.add("1.9 END OF WORK SHIFT SAFETY");
    SAFETYPRECAUTIONS.add("1.10 TRANSPORTATION");
    SAFETYPRECAUTIONS.add("1.11 TOWING THE MACHINE");

    List<String> MACHINEFAMILIARIZATION = new ArrayList<String>();
    MACHINEFAMILIARIZATION.add("2.1 FAMILIARIZATION");
    MACHINEFAMILIARIZATION.add("2.2 GENERAL MACHINE NOMENCLATURE");
    MACHINEFAMILIARIZATION.add("2.3 OPERATOR CAB NOMENCLATURE");
    MACHINEFAMILIARIZATION.add("2.4 COMPONENT & CONTROLS NOMENCLATURE");

    List<String> MACHINEOPERATION = new ArrayList<String>();
    MACHINEOPERATION.add("3.1 BASIC MACHINE OPERATION");

    List<String> MAINTENANCE = new ArrayList<String>();
    MAINTENANCE.add("4.1 GENERAL INFORMATION");
    MAINTENANCE.add("4.2 GENERAL SAFETY & PRECAUTIONS");
    MAINTENANCE.add("4.3 LUBRICANT, FUEL & COOLANT SPECIFICATIONS");
    MAINTENANCE.add("4.4 MAINTENANCE PARTS");
    MAINTENANCE.add("4.5 ACCESSORY TOOLS");
    MAINTENANCE.add("4.6 TORQUE SPECIFICATIONS FOR BOLTS & NUTS");
    MAINTENANCE.add("4.7 TORQUE SPECIFICATIONS FOR JOINTS & HYDRAULIC HOSES");
    MAINTENANCE.add("4.8 INSTALLING HYDRAULIC HOSE AND PIPE JOINT FITTINGS");
    MAINTENANCE.add("4.9 RELEASING INTERNAL PRESSURE OF HYDRAULIC SYSTEM");
    MAINTENANCE.add("4.10 BLEEDING AIR IN FUEL SYSTEM");
    MAINTENANCE.add("4.11 REPLACING RUBBER CRAWLER BELT");
    MAINTENANCE.add("4.12 INSPECTION & MAINTENANCE CHART");
    MAINTENANCE.add("4.13 OTHER MAINTENANCE - PERFORMED WHEN REQUIRED");
    MAINTENANCE.add("4.14 PRE-START (EVERY 8 HOURS) INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.15 50-HOUR (WEEKLY) INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.16 250-HOUR (3-MONTH) INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.17 500-HOUR (6-MONTH) INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.18 1000-HOUR (12-MONTH) INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.19 2000-HOUR INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.20 5000-HOUR INSPECTION AND MAINTENANCE");
    MAINTENANCE.add("4.21 INSPECTION / MAINTENANCE CHECK LIST");


    List<String> TRANSPORTATION = new ArrayList<String>();
    TRANSPORTATION.add("5.1 PREPARING FOR MACHINE TRANSPORTATION.");
    TRANSPORTATION.add("5.2 LIFTING THE MACHINE");
    TRANSPORTATION.add("5.3 WEIGHT AND DIMENSION SPECIFICATIONS");

    List<String> SPECIFICATIONS = new ArrayList<String>();
    SPECIFICATIONS.add("6.1 GENERAL SPECIFICATIONS");

    List<String> OPTIONALEQUIPMENT = new ArrayList<String>();
    OPTIONALEQUIPMENT.add("7.1 OPERATION OF HYDRAULIC BREAKER AND NIBBLER");
    OPTIONALEQUIPMENT.add("7.2 SAFETY PRECAUTIONS");
    OPTIONALEQUIPMENT.add("7.3 PERIODIC INSPECTION AND MAINTENANCE INTERVAL");

    List<String> TROUBLESHOOTING = new ArrayList<String>();
    TROUBLESHOOTING.add("8.1 GENERAL TROUBLESHOOTING");

    List<String> SPECIALPROCEDURES = new ArrayList<String>();
    SPECIALPROCEDURES.add("9.1 MOVING A DISABLED MACHINE.");
    SPECIALPROCEDURES.add("9.2 RELEASING LOCK ON TRAVEL MOTOR");


    listDataChild.put(listDataHeader.get(0), SAFETYPRECAUTIONS); // Header, Child data
    listDataChild.put(listDataHeader.get(1), MACHINEFAMILIARIZATION);
    listDataChild.put(listDataHeader.get(2), MACHINEOPERATION);
    listDataChild.put(listDataHeader.get(3), MAINTENANCE);
    listDataChild.put(listDataHeader.get(4), TRANSPORTATION);
    listDataChild.put(listDataHeader.get(5), SPECIFICATIONS);
    listDataChild.put(listDataHeader.get(6), OPTIONALEQUIPMENT);
    listDataChild.put(listDataHeader.get(7), TROUBLESHOOTING);
    listDataChild.put(listDataHeader.get(8), SPECIALPROCEDURES);
}

}

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多