2011-11-17 104 views
0

我有一些可點擊的位圖一個視圖類,在onTouch的方法,我想觸發一個新的活動時,我摸到了位圖啓動另一項活動不會延長活動超類

Intent newintent = new Intent(); 
      newintent.setClass(view.getContext(),MainMenu.class); 
      startActivity(newintent); 

由於該類不擴展Activity,我如何在不擴展Activity的情況下啓動一個活動? 當前錯誤是:

The method startActivity(Intent) is undefined for the type DrawView 

回答

5

只要你MainMenu.classActivity和調用從某種你需要添加一個Context從你的新Activity將啓動的ViewstartActivity()方法。

你的情況,那就是:

view.getContext().startActivity(newintent); 
+0

謝謝你的快速反應,它會立即工作乾杯 –

2

你需要有一個上下文做這樣的事情應該沒問題。

在你的課堂上爲你的視圖聲明一個上下文。

Context myContext = view.getContext(); 

然後用它開始你的活動。

Intent newintent = new Intent(); 
     newintent.setClass(myContext,MainMenu.class); 
     myContext.startActivity(newintent);myContext.startActivity(newintent); 
+0

你是真棒ü挽救我的生命,我用了你代碼放在擴展PagerAdapter的類中,並且工作正常。謝謝... –

1

當您初始化您的視圖類。在構造函數中,您傳遞活動類的上下文,例如

View v = new View(context) 

在您自己的View類構造函數中。將此上下文引用爲類級對象。

public class MyView extend View{ 
    private Context mContext = null; 

    MyView(Context context){ 
     super(context); 
     mContext = context; 
    } 

} 

何時需要開始活動。

mContext. startActivity(newintent); 
0

您可以將顯示中的視圖的活動傳遞給此視圖。 視圖的構造函數可以被改寫爲:

View(Contenxt , ..) 

,並且將使用

context.start(...) 
相關問題