首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

外部类怎么获得内部类返回的值

2012-05-02 
外部类如何获得内部类返回的值?Java codepublic int resultpublic int confirm(Context context,String t

外部类如何获得内部类返回的值?

Java code
public int result;public int confirm(Context context,String title, String message) {    Dialog dialog = new AlertDialog.Builder(context)    .setTitle(title)    .setMessage(message)    .setPositiveButton("确定", new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialog, int which) {                 result = 1;        }                }).setNegativeButton("取消", new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialog, int which) {            result = 2;        }                }).create();    dialog.show();    Log.i(Constant.LOG_TAG, "click result = "+String.valueOf(result));    return result;//这里在onClick()执行之前result就返回了,如何返回onClick()里面的result的值?}


[解决办法]
把那返回去掉,result已经是成员变量了,干嘛还要返回

另外,你这个方法也是多余的,没必要。

直接写

new AlertDialog.Builder(context).setTitle("").setMessage("").setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
result = 1;
}

}).setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
result = 2;
}

}).show();
[解决办法]
你快慢将result定义为public了,只需在onClick事件里面给result值后,再调用你希望调用的方法就可以了。

探讨

其实就是想要弹出一个有“确认”“取消”按钮的对话框,但是又不想每次都是
new AlertDialog....
....
...
dialog.show();
这样写一大串代码。

热点排行