当前位置: 代码迷 >> Android >> 外部类怎么获得内部类返回的值
  详细解决方案

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

热度:23   发布时间:2016-05-01 21:23:28.0
外部类如何获得内部类返回的值?
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();
这样写一大串代码。
  相关解决方案