我正在尝试在单击按钮下的BaseAdapter内添加Alert Builder。 这是我的代码
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();
似乎有什么问题?
修改 根据您的建议和意见,我更改了上面的代码 并在我的活动
上添加一个getter和setterprivate 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);
答案 0 :(得分: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();
}
});
希望帮助
修改强>
尝试this.
AlertDialogs只能使用Activity上下文创建,因此getApplicationContext()将无效。而是将以下全局变量添加到您的Activity文件中:
Context mContext;
然后将以下内容添加到onCreate():
mContext = this;
现在,改变:
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
到
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
答案 1 :(得分:0)
在显示对话框之前,您必须创建一个警报对话框。
//创建警报对话框
AlertDialog alertDialog = alert_box.create();
//显示
alertDialog.show();
请检查此link。
答案 2 :(得分:0)
这可以解决你的问题
AlertDialog alertDialog = alertDialogBuilder.create();
答案 3 :(得分:0)
你的问题在于以下一行
AlertDialog.Builder alert_box = new AlertDialog.Builder(activity.getApplicationContext());
您应该使用本地存储的上下文变量,而不是使用activity.getApplicationContext()
。
AlertDialog.Builder 的getApplicationContext失败。
答案 4 :(得分:0)
尝试使用以下代码,因为它需要Activity上下文而不是Application context
AlertDialog.Builder alert_box = new AlertDialog.Builder(activity.this);