0

我创建了一个扩展 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);

任何建议将不胜感激 :)

4

4 回答 4

4

实际上,startActivity();Activity类的方法,要运行此方法,您必须Context of ActivityReference of Activity,如果没有 Activity 引用,您不能在 Activity 范围之外的其他类中运行此方法。

尝试,

<Activity_Name>.this.startActivity(intent);

或者

mContext.startActivity(intent);

这里mContext是您的 Activity 类的引用。

于 2012-06-27T09:11:58.833 回答
2

正如您所写,您想启动一个Activity,如果您的类不继承自Activity(我猜,因为否则您将不得不实现onCreate()),您将根本无法用 Intent 启动它......

于 2012-06-27T09:13:01.497 回答
0

如果您的类是主要活动的扩展,并且您想从类的主体中调用其他活动,只需在其他类中创建一个方法,然后通过创建该类的实例来调用该方法并调用方法。

由于它们具有相同的性质,这将起作用,但请记住在 try 和 catch 方法中调用方法,否则您可能会遇到一些错误。

于 2012-06-27T09:18:51.557 回答
0

Gallery是一种View类型,如果你会看到它Hirerchy,你会看到它的super类是View并且视图没有任何 onCreate 方法

使用你的CustomGallery

您可以从 xml 或代码中使用它

<com.mypackage.CustomGallery >
android:id...


 </com.mypackage.CustomGallery>
于 2012-06-27T09:33:52.070 回答