找不到这个支架的去向?

时间:2012-07-28 15:30:38

标签: java android

我无法弄清楚为什么Eclipse抱怨我的第二个“OnClick”方法支架......

我知道这很简单,但我似乎无法修复它!

我的活动代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    CallService cs = new CallService();
    TotalTime = TotalTime + (cs.EndTime - cs.StartTime);
    Button button = (Button) findViewById(R.id.button1);

    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Toast toast = Toast.makeText(getApplicationContext(), ""+TotalTime, Toast.LENGTH_SHORT);
            toast.show();
        } // <-- Why is it complaining about this bracket?!
}

4 个答案:

答案 0 :(得分:4)

对于每个需要关闭它的左括号或括号,您还需要用分号完成每个语句。编译器希望添加});

   // You open these, so you need to close them in order
   //                       v                           v
   button.setOnClickListener(new View.OnClickListener() {
       //                          v
       public void onClick(View v) {
           // Perform action on click

           Toast toast = Toast.makeText(getApplicationContext(), ""+TotalTime, Toast.LENGTH_SHORT);
           toast.show();
       }
   //  ^    
   }); // This is what the compiler wants
// ^^

答案 1 :(得分:2)

你错过了这个:

button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // Perform action on click
        Toast toast = Toast.makeText(getApplicationContext(), ""+TotalTime, Toast.LENGTH_SHORT);
        toast.show();
    }
}); // <------------- Close the parenthsesis!!

答案 2 :(得分:1)

1。在错误的地方给了 extra bracket错过了 a bracket和{{ 1}}与a brace

- 错误:

semicolon

- 正确:

         new View.OnClickListener()) // Dont add ")" here.

- 错过了:

         new View.OnClickListener()

<强> 2。在程序中将此部分替换为您的部分,它肯定会起作用......

           } );   

3。 进一步轻松我发布 您的整个工作代码....

/////////////整个onCreate()带有更正后的代码///////////////

button.setOnClickListener(new View.OnClickListener() {
           public void onClick(View v) {
               // Perform action on click

                   Toast toast = Toast.makeText(getApplicationContext(), ""+TotalTime, Toast.LENGTH_SHORT);
                   toast.show();
           }

       } ); 

答案 3 :(得分:1)

我建议你把你的代码放在像eclipse这样的IDE中。它通常会反映出编译错误,因此您无需额外花费在搜索此类错误上。如果您想格式化代码,请在eclipse中执行以下步骤

当光标位于编码区域时

按ctrl + A //选择所有代码

然后按ctrl + shift + F //这会格式化你的代码

现在您可以轻松找到括号的起点和终点,并且您的代码看起来格式很好。