1

我正在尝试在单击按钮下的 BaseAdapter 内添加警报生成器。这是我的代码

 Button btn=(Button)vi.findViewById(R.id.btnAdd);
 btn.setOnClickListener(new OnClickListener(){

                             AlertDialog.Builder dialogBox=new AlertDialog.Builder(this);
                 dialogBox.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
                       public void onClick(DialogInterface dialog, int which) {
                          String facebookFriendName = friendsName.getText().toString();
                                String FACEBOOKID = FBID;
                               Log.i("AKO SI: ", ""+facebookFriendName + FACEBOOKID);
                       }
                    });
                    dialogBox.setNegativeButton("No", new DialogInterface.OnClickListener(){

                           public void onClick(DialogInterface dialog, int which) {

                           }
                        });
                    dialogBox.show();     

现在我在这部分出现错误alert_box.show();

似乎是什么问题?

根据您的建议和评论进行编辑我更改了上面的代码并在我的 Activity 上添加了 getter 和 setter

private Context context;  
/////////
            public Context getContext() {
        return context;
    }

    public void setContext(Context context) {
        this.context = context;
    }

在我的活动类下绑定

    adapter2 =new LazyAdapterGetFriends(this, songsList);   
             adapter2.getContext();    
             list.setAdapter(adapter2);

但我仍然收到一条错误消息:

*09-11 13:48:49.298: E/AndroidRuntime(1226):    at com.fb.connect.LazyAdapterGetFriends$1.onClick(LazyAdapterGetFriends.java:95)

*pointing at AlertDialog.Builder dialogBox=new AlertDialog.Builder(context);
4

5 回答 5

1

试试这个

  Button btn=(Button)vi.findViewById(R.id.btnAdd);
  btn.setOnClickListener(new OnClickListener(){

    public void onClick(View arg0) {
            // TODO Auto-generated method stub


        AlertDialog.Builder ab=new AlertDialog.Builder(MainActivity.this);
        ab.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
           @Override 
           public void onClick(DialogInterface dialog, int which) {
              String facebookFriendName = friendsName.getText().toString();
                    String FACEBOOKID = FBID;
                   Log.i("AKO SI: ", ""+facebookFriendName + FACEBOOKID);
           }
        });
        ab.setNegativeButton("No", new DialogInterface.OnClickListener(){
               @Override 
               public void onClick(DialogInterface dialog, int which) {

               }
            });
        ab.show();                       
    }                
});

希望帮助

编辑

试试这个。

AlertDialogs 只能使用 Activity 上下文创建,因此 getApplicationContext() 将不起作用。相反,将以下全局变量添加到您的 Activity 文件中:

Context mContext;

然后将以下内容添加到您的 onCreate() 中:

mContext = this;

现在,改变:

AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());

AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
于 2012-09-11T05:26:13.890 回答
0

在显示对话框之前,您必须创建一个警报对话框。

// 创建警报对话框

AlertDialog alertDialog = alert_box.create();

// 展示下

alertDialog.show();

请检查此链接

于 2012-09-11T05:19:56.943 回答
0

愿这能解决你的问题

AlertDialog alertDialog = alertDialogBuilder.create();
于 2012-09-11T05:20:26.513 回答
0

您的问题在于以下行

AlertDialog.Builder alert_box = new AlertDialog.Builder(activity.getApplicationContext());

而不是使用activity.getApplicationContext()您应该使用本地存储的上下文变量。AlertDialog.Builder的 getApplicationContext失败。

于 2012-09-11T05:25:55.607 回答
0

尝试使用以下代码,因为它需要 Activity 上下文而不是 Application 上下文

 AlertDialog.Builder alert_box = new AlertDialog.Builder(activity.this);
于 2012-09-11T05:55:04.200 回答