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 Activityまたはが必要Reference of Activityです. Activity への参照がなければ, Activity スコープ外として他のクラスでこのメソッドを実行することはできません.

試す、

<Activity_Name>.this.startActivity(intent);

また

mContext.startActivity(intent);

ここでmContextは Activity クラスの参照です。

于 2012-06-27T09:11:58.833 に答える
2

あなたが書いたように、Activityあなたのクラスがから継承していない場合Activity(それ以外の場合は実装する必要があるためonCreate())を開始したい場合、インテントで開始することはできません....

于 2012-06-27T09:13:01.497 に答える
0

GalleryView表示される場合はタイプです。HirerchyそのsuperクラスはタイプでViewあり、ビューには onCreate メソッドがないことがわかります

あなたのCustomGallery

xmlまたはコードから使用できます

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


 </com.mypackage.CustomGallery>
于 2012-06-27T09:33:52.070 に答える
0

クラスがメイン アクティビティの拡張であり、クラスの本体から他のアクティビティを呼び出したい場合は、単純に他のクラスでメソッドを作成し、クラスのインスタンスを作成してメソッドを呼び出し、方法。

それらは同じ性質を持っているので動作しますが、メソッド呼び出しを try and catch メソッドでラップすることを忘れないでください。そうしないと、エラーが発生する可能性があります。

于 2012-06-27T09:18:51.557 に答える