我的应用程序有一个asynch任务进入一个网站,从API中获取结果并将一些可点击的文本视图附加到现有的LinearLayout。
但是,我希望能够在单击textview时启动新活动。在单独的文件中定义的asynch类是不可能的,将它定义为活动中的内联类是否更容易?
答案 0 :(得分:3)
您始终可以将Context传递给异步类。
更好的方法是在调用类中让回调(侦听器)让异步回调。
答案 1 :(得分:1)
一种方法是从声明onClick属性的XML文件中扩充TextViews,命名在Activity中定义的方法。
答案 2 :(得分:0)
不要将上下文用作活动!无论如何,您可能会收到施法错误。相反,您可以将活动作为函数参数传递,如下所示:
public void function(Activity act)
{
Intent intent = new Intent(act, newActivity.class);
act.startActivity(intent);
}
或者重载构造函数以将活动作为参数接受。但我强烈建议你查一下代码。如果你正在召集一项活动,你可能应该在另一项活动中,你不同意吗?但是,我知道有时我们必须做出一些让步,以使事情正常运作。所以,明智地使用它。