我正在进行主要活动和一个简单的类。主要活动是使用对话框方法,我从另一个类调用此方法
主要活动 -
public class WishareActivity extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
activity=this;
//handler to call alertmsg()method
alerthandler= new Handler() {
public void handleMessage(Message msg){
alertmsg();
}
};
layouthandler= new Handler() {
public void handleMessage(Message msg){
setContentView(R.layout .main);
}
};
}
//method to show the dialog box
public static void alertmsg()
{
AlertDialog.Builder alert = new AlertDialog.Builder(WishareActivity.activity);
alert.setTitle("Confirm");
alert.setMessage("abc");
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
}
});
alert.setNegativeButton("Deny", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
Log.d("abc","alert alert");
AlertDialog s=alert.create();
s.setOnDismissListener(new DialogInterface.OnDismissListener() {
public void onDismiss( DialogInterface dialog) {
}
});
Log.d("abc1","alert alert");
alert.show();
Log.d("abc1","alert alert alert");
return;
}
connect.class
public class connect implements Runnable
{
public void run()
{
WishareActivity.layouthandler.sendEmptyMessage(0);
WishareActivity.alerthandler.sendEmptyMessage(0);
}
}
在Logcat中显示
abc : alert alert
abc1: alert alert
abc1 :alert alert alert
根据日志,方法被正确调用但对话框没有显示。
非常感谢任何帮助
答案 0 :(得分:0)
更改警告对话框方法
public static void alertmsg()
到这个
public static void alertmsg(Context context)
像这样使用这个上下文变量
AlertDialog.Builder alert = new AlertDialog.Builder(context);
使用此方法时,请执行此操作
WishareActivity.alertmsg(someactivity.this); // here someactivity will be the activity name where you are calling alert method
你的对话框会很好用。
答案 1 :(得分:0)
试试这个:
您可以像这样
创建没有静态的方法public void alertmsg();
因为类不支持静态。它会在
下面显示此错误 Cannot use this in a static context
我相信这将是有效的