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); 有错误。

开发人员经常在构造函数中传递 Context:

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 回答