我创建了一个扩展Gallery的类。超类中没有onCreate()方法,我无法运行我的意图。 这是我的示例代码:
this.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Intent intent = new Intent(v.getContext(), ClassName.class);
startActivity(intent);
}}
以下尝试也无效:
Intent intent = new Intent(ThisClassName.this, ClassName.class);
startActivity(intent);
非常感谢任何建议:)
答案 0 :(得分:3)
实际上,startActivity();
是活动类的方法,要运行此方法,您必须Context of Activity
或Reference of Activity
,您无法在此方法中运行此方法其他类作为活动范围之外,没有活动参考。
尝试,
<Activity_Name>.this.startActivity(intent);
或
mContext.startActivity(intent);
此处 mContext 是您的Activity类的引用。
答案 1 :(得分:2)
正如你所写的,如果你的班级没有继承Activity
(我想,因为否则你必须实施Activity
),你想要开始onCreate()
#39;能够用Intent启动它......
答案 2 :(得分:0)
如果你的类是main活动的扩展,并且你想从类的主体调用另一个活动,只需在另一个类中创建一个方法,然后通过创建一个类的实例来调用该方法并调用该方法。
由于它们具有相同的性质,因此可以使用,但请记住在try和catch方法中使用方法调用,否则可能会出现一些错误。
答案 3 :(得分:0)
Gallery
是View
类型,如果您看到其Hirerchy
,您会看到其super
班级为View
且视图确实为{0}}有任何onCreate方法
使用您的CustomGallery
您可以从xml或代码
中使用它<com.mypackage.CustomGallery >
android:id...
</com.mypackage.CustomGallery>