2 starwar2012 starwar2012 于 2013.08.23 11:36 提问

在内部方法关联一个接口

有一个类执行另一个类中创建的接口,代码如下:

public class MainActivity extends Activity  implements AsyncClassSocket.Listener{   
AsyncClassSocket thesocketclass = new AsyncClassSocket();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);    
    thesocketclass.registerListener(this);
    //More codes
    }
}    
@Override
public void onReplyFromServer(boolean state) {
    //Codes
}

上面的代码没有问题,但是如果我将代码放到一个内部方法中:

showProgressDialog.setOnClickListener(new View.OnClickListener() {          
        @Override
        public void onClick(View v) {
            thesocketclass = new AsyncClassSocket();
            thesocketclass.registerListener(this); <---- Problem
            showProgressDialog();   
            thesocketclass.execute();               
        }
    });     
} 

就不能再关联到接口,而是关联到View.OnClickListener()

2个回答

fandyvon
fandyvon   Rxr 2013.08.23 16:36
已采纳
thesocketclass.registerListener(MainActivity.this); <---- Problem
Jave_
Jave_   2013.08.23 12:30
        thesocketclass.registerListener(this); 

this改成你的Activity.this

Csdn user default icon
上传中...
上传图片
插入图片