2014-03-03 87 views
0

我想在eclipse中用按钮创建一个简单的应用程序。我想这样做是为了在按下按钮10次后会弹出一条消息。问题是,当我启动应用程序并按下按钮10次时,没有任何反应。你能告诉我我做错了什么吗?按钮问题eclipse

这是我的活动文件:

package com.example.dialog; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 
public class Game extends Activity implements android.view.View.OnClickListener{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.game); 
     Button gamebutton = (Button) findViewById(R.id.gamebutton); 
    } 
    @Override 
    public void onClick(View v){ 
     //TODO Auto-generated method stub 
     int clicked = 0; 
     clicked++; 
     if( clicked==10){ 
      AlertDialog.Builder gamebuild = new AlertDialog.Builder(Game.this); 
      gamebuild.setMessage("Good"); 
      gamebuild.setCancelable(false); 
      gamebuild.setPositiveButton("Quit", new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
        Game.this.finish(); 

       } 
      }); 
      gamebuild.setNegativeButton("One more!", new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
      dialog.cancel();   
       } 
      }); 
     } 

    } 

} 

感谢响应!我用这种方式编辑了活动文件:

package com.example.dialog; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 

public class Game extends Activity implements android.view.View.OnClickListener{ 
    int clicked = 0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.game); 
     Button gamebutton = (Button) findViewById(R.id.gamebutton); 
    } 

    @Override 
    public void onClick(View v){ 
     //TODO Auto-generated method stub 

     clicked++; 
     if( clicked==10){ 
      AlertDialog.Builder gamebuild = new AlertDialog.Builder(Game.this); 
      gamebuild.setMessage("Good"); 
      gamebuild.setCancelable(false); 
      gamebuild.setPositiveButton("Quit", new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
        Game.this.finish(); 

       } 
      }); 
      gamebuild.setNegativeButton("One more!", new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
      dialog.cancel();   
       } 
      }); 
     } 

    } 

} 

仍然没有正常工作。对不起愚蠢的问题:我是新来的android。

新编辑:

package com.example.dialog; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 

public class Game extends Activity implements android.view.View.OnClickListener{ 
    int clicked = 0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.game); 

     Button gamebutton = (Button) findViewById(R.id.gamebutton); 
     gamebutton.setOnClickListener(this); 

    } 

    @Override 
    public void onClick(View v){ 
     //TODO Auto-generated method stub 

     clicked++; 
     if( clicked==10){ 
      AlertDialog.Builder gamebuild = new AlertDialog.Builder(Game.this); 
      gamebuild.setMessage("Good"); 
      gamebuild.setCancelable(false); 
      gamebuild.setPositiveButton("Quit", new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
        Game.this.finish(); 

       } 
      }); 
      gamebuild.setNegativeButton("One more!", new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
      dialog.cancel();   
       } 
      }); 
     } 

    } 

} 

回答

0

问题是,可变点击是内部的onClick声明。所以它总是零。你必须在全球范围内,在课堂上宣布它。

1

您将计数器置于onClick函数中,使其每次都重置。所以,从的onClick内移动

int clicked = 0; 

您的onCreate之前,如:

int clicked = 0; 
@Override 
protected void onCreate.... 

这将使得其设置为0一次,然后留等于不管它是最后一个值,只要应用程序是开放的,不会被杀害

+0

感谢repsonse!正如你所说,我已经编辑过活动文件,但它仍然没有以正确的方式工作。我在我的问题中添加了新的活动文件代码。还有更多的错误吗?在此先感谢 – user3365831

+0

@ user3365831您需要添加“gamebutton.setOnClickListener(this);”为了告诉按钮什么功能来点击点击。因为你这样做,你可能需要onClick函数来检查视图(作为v传递)来检查哪个按钮被按下,这样你可以有多个按钮(如果你想,再加上这是一个好习惯) – T3KBAU5

+0

你能请再次看到问题 - 我再次编辑它。我已经尝试了puttin'“gamebutton.setOnClickListener(this)”onClick内部和外部。仍然没有变化..非常感谢 – user3365831