2012-06-06 49 views
1

我有一个名为TouchImageView extends ImageView的类,我检测用户点击它的位置。如果这是一个兴趣点,我想在Detailed_Image_Activity上调用一个方法来更新WebView。我怎样才能做到这一点?从视图调用活动

我发现了一些关于使用observer和observables的想法,但我不知道该怎么做。我发现这个解决方案Equivalent of iOS NSNotificationCenter in Android?但我不能让它工作,它

这是我在TouchImageView类代码...

switch (event.getAction()) { 
    case MotionEvent.ACTION_DOWN: 
     if(isPointOfInterest) { 
      //The code below is used to update the WebView 
      //The task called below exists in the Detailed_Image_Activity 
      DownloadHighlightBackground HighlightDownloaderTask = new DownloadHighlightBackground(); 
      HighlightDownloaderTask.execute(new String[] { arg1.toString() }); 
     } 
} 
+0

这可能帮助:http://developer.android.com/reference/android /content/BroadcastReceiver.html – AJcodez

回答

0

试试这个,

您可以从视图中获得活动,以这种方式..

((MyActivity)getContext()).method_name(); 
+0

我认为这会工作,但我的方法是actualy活动内的异步任务类... 在Detailed_Image_Activity: 私有类DownloadHighlightBackground扩展的AsyncTask <字符串,太虚,字符串> { 所以这是我想的方法呼叫。 –

+0

这实际上解决了我的问题。 我创建了一个方法来创建线程来更新我所需要的。 非常感谢((: –

0

要启动一个活动,你需要访问应用程序的上下文,然后你可以调用startActivity。

+0

但活动已经开始并存在,这是问题所在。 我只需要调用它的一个方法。 :/ –

+0

听起来像你没有正确地做某件事,因为你不假设活动正在运行。一个简单的修复就是使该函数成为公共静态的。如果你没有能力待办事项,那么你需要以某种方式打开一个界面。听起来你可能能够扩展应用程序,因为你能够假设正在运行。您也可以将这些数据保存为共享首选项,并在整个程序中访问它。然后,您还可以设置侦听器在更改时收到通知。 –