1

こんにちはすべて私はクラス名を持っています

public class WikipediaDataSource extends NetworkDataSource{.....}

NetworkDataSourceに拡張されます。私がやろうとしていることは、このクラスから私が新しい活動と呼びたいことです...

Intent i = new Intent(context, Obj3DView.class);
startActivity(i);

エラーが発生しました

the method of startActivity(intent) is undefined for the type WikipediaDataSource 

私はこの問題についてたくさん読みました..このクラスはアクティビティクラスを拡張しないために発生します。

私は他の解決策に従うようにしています。しかし、私の場合は機能しません。

助けてください!:)

4

2 に答える 2

8

この行が機能する場合:

Intent i = new Intent(context, Obj3DView.class);

そうすれば、すでにコンテキストにアクセスできます。次を使用するだけです。

context.startActivity(i);

startActivity()はContextクラスのメソッドです。


実際には、行インテントi = new Intent(context、Obj3DView.class); エラーが発生しました。

多くの場合、開発者はコンストラクターでコンテキストを渡します。

public class WikipediaDataSource extends NetworkDataSource {
    Context context;

    public WikipediaDataSource (Context ctx) {
        ...
        context = ctx;
    }
    ...
}

これで、コードが機能するはずです。

于 2012-12-02T04:23:41.537 に答える
0

非アクティビティクラスの場合:

private Activity activity;

public non_activity_class(Activity act) {

        activity=act;

}
.....`enter code here`

そして、あなたが新しい活動を始めたいとき

Intent in = new Intent("Pakege.NewActivity");
// NewActivity = what you write in your Manifest            

activity.startActivity(in);

アクティビティクラスで、コンストラクターを呼び出します

non_activity_class(this);

お役に立てば幸いです。

于 2014-03-28T10:54:05.767 に答える