我有A类和B类。A类在这里称B类:
public void onClick(View v){
//respond to clicks
new MyTask().execute();
在这个新任务中,我做了一些网络垃圾,最终找到了一个我想传递回A类的字符串。
但是我似乎做不到。我试图做类似classA.textfield.setText(text)的事情,但这没有用。而且看起来类也不能返回值。我已经看到一些标记为相似的内容,但是我认为它们并不能解决我的问题,如果可以,我也不知道如何实现它们。我觉得这一定是有一种非常简单的方法来完成的,但是我所看到的唯一建议是,听起来甚至很相似的声音正在制作新版本的Class A,但这听起来非常错误。
最佳答案
这是Callback
或ActionListener
编码模式显示其强度的地方。
在您的MyTask类中,在类声明后添加以下代码:
public interface MyTaskActionListener{
public void didFinish(String result);
}
将成员添加到MyTask类:
private MyTaskActionListener listener;
现在,将方法
setActionListener
添加到MyTask中:public void setActionListener(MyTaskActionListener l){
listener = l;
}
接下来,在启动MyTask之前,设置侦听器:
MyTask task = new MyTask();
task.setActionListener(new MyTaskActionListener(){
public void didFinish(String result){
yoirTextView.setText(result);
}
});
最后但并非最不重要的一点是,在MyTask的onPostExecute中调用didFinish():
protected void onPostExecute(String result){
listener.didFinish(result);
}
关于java - java在另一个类中编辑文本字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21352488/