可以在java中回调外部嵌套类吗?
这里有一个我正在尝试做的例子可以在java中回调外部嵌套类吗?,java,android,callback,nested-class,Java,Android,Callback,Nested Class,这里有一个我正在尝试做的例子 public class BookModel { private void update_method() { get_info task = new get_info(this) task.exicute(some args); } public void finishedCallback(some_return_type result) { /
public class BookModel {
private void update_method() {
get_info task = new get_info(this)
task.exicute(some args);
}
public void finishedCallback(some_return_type result) {
// do some stuff when finsiehd.
}
class get_info extends AsyncTask<HashMap<String, String>, Void, dataType>
{
private BookModel bookModel;
public get_info ( BookModel reset) {
bookModel = reset;
}
@Override
protected dataType doInBackground(arg...)
some procscessing.
}
protected void onPostExecute(dataType result) {
bookModel.finishedCallback(result);
}
}
}
公共类图书模型{
私有void update_方法(){
获取信息任务=新建获取信息(此)
task.execute(一些参数);
}
public void finishedCallback(某些返回类型结果){
//找到后做些事情。
}
类获取\u信息扩展异步任务
{
私人书刊模式;
公共获取信息(图书模型重置){
bookModel=重置;
}
@凌驾
受保护的数据类型doInBackground(arg…)
一些手术。
}
受保护的void onPostExecute(数据类型结果){
bookModel.finishedCallback(结果);
}
}
}
我怎样才能让这个回调系统工作。。。我也尝试过使用一个接口,但它不起作用。我认为这是因为您需要3个带有接口的类(如果我错了,请纠正我)。我也愿意接受任何建议,但如果可能的话,我希望将此功能保留在同一个类中。在此方面的任何帮助都将不胜感激 试试这个
这是为我工作
public class BookModel implements get_info.xyz {
private void update_method() {
get_info task = new get_info(this);
task.exicute(some args);
}
public void finishedCallback(String result) {
// do some stuff when finsiehd.
}
}
//----------------------------------
class get_info extends AsyncTask<HashMap<String, String>, Void, dataType>
{
private xyz bookModel;
public interface xyz
{
void finishedCallback(String str);
}
public get_info ( xyz reset) {
bookModel = reset;
}
@Override
protected dataType doInBackground(arg...)
some procscessing.
}
protected void onPostExecute(dataType result) {
bookModel.finishedCallback(result);
}
}
public类BookModel实现get_info.xyz{
私有void update_方法(){
获取信息任务=新获取信息(此任务);
task.execute(一些参数);
}
public void finishedCallback(字符串结果){
//找到后做些事情。
}
}
//----------------------------------
类获取\u信息扩展异步任务
{
私有xyz图书模型;
公共接口xyz
{
void finishedCallback(字符串str);
}
公共获取信息(xyz重置){
bookModel=重置;
}
@凌驾
受保护的数据类型doInBackground(arg…)
一些手术。
}
受保护的void onPostExecute(数据类型结果){
bookModel.finishedCallback(结果);
}
}
你需要3个带有接口的类
你从哪里得到的?你的doInBackground声明是错误的。您需要受保护的getProductInfoBriefFull doInBackground(Void…){
@njzk2好吧,我把接口算成一个类…所以你需要接口,发出信号的类和接收信号的类…但是如果你不把接口算成一个类,那么你只需要两个…但问题似乎是这个类是嵌套的。我无法弄清楚你在尝试什么g来实现,但是如果您想从get_info访问BookModel实例,只需编写BookModel.this.finishedCallback(result)@mrak,因为类不是静态的,并且没有歧义(get_info中没有finishedCallback),直接调用finishedCallback
也可以。