2012-01-17 72 views
2

我正在玩一个简单的应用程序,我想单击按钮时显示警报。如何在点击按钮时获得简单提醒?

我到目前为止的代码是:

package max.helloworld.firstapp; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 

public class HelloWorldActivity extends Activity { 
/** Called when the activity is first created. */ 

private Button closeButton; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    this.setContentView(R.layout.main); 
    this.closeButton = (Button)this.findViewById(R.id.close); 
    this.closeButton.setKeyListener(new onClickListener() { 
     @Override 
     public void onClick(View v) { 
      AlertDialog alertDialog = new AlertDialog.Builder(this).create();    
      alertDialog.setTitle("Transformers"); 
      alertDialog.setMessage("Optimus Prime"); 
      alertDialog.setButton("OK", new OnClickListener(){ 
       public void onClick(DialogInterface dialog, int which){ 
       } 
      }); 
      //alertDialog.setIcon(R.drawable.icon); 
      alertDialog.show(); 
      finish(); 
     } 
    }); 
} 
} 

的问题是,它说AlertDialog alertDialog =新AlertDialog.Builder(本).create();

它说构造函数是未定义的。我该如何解决这个问题?

+0

为什么你叫结束之后呢?你有两次setContentView - 为什么? – hovanessyan 2012-01-17 16:45:09

+0

我删除了那些,我正在查看各种网站的代码,并且必须将其放入两次。 – user1154405 2012-01-17 17:07:19

回答

1

关键字this解析为在该范围内的OnClickListener的实例。返回来参考您的活动实例与HelloWorldActivity.this

+0

嗨,谢谢你摆脱了错误。但是当我点击我的视图上的按钮时,现在什么都没有发生。有任何想法吗?我也删除了'finish();'和'this.setContentView(R.layout.main);' – user1154405 2012-01-17 16:54:54

+0

而不是setKeyListener - setOnClickListener – Rich 2012-01-17 16:55:54

+0

这样做后,新的错误是“方法setOnClickListener(View.OnClickListener)查看不适用于参数(新的onClickListener(){})“Nevermind,它现在可以工作。谢谢! – user1154405 2012-01-17 17:02:26

4

更改替换this这一行:

`AlertDialog alertDialog = new AlertDialog.Builder(this).create();` 

要:

`AlertDialog alertDialog = new AlertDialog.Builder(yourActivityName.this);` 
+0

谢谢!这解决了它。 – user1154405 2012-01-17 17:07:36