Android编程中如何在非activity类调用activity类的方法?
最近学习Android编程,建了一个子线程,想要在子线程实现新建一个文件,但是子线程没有继承activity类,无法调用openFileOutput这个函数,我就想了几个...
最近学习Android编程,建了一个子线程,想要在子线程实现新建一个文件,但是子线程没有继承activity类 ,无法调用openFileOutput这个函数,我就想了几个办法。
首先就是在activity中重写了openFileOutput这个函数,然后在子线程中new了一个主activity(类名叫test)类,在对象中调用这个方法。
然后就是子线程构造函数中,传入this指针在调用,也不行,我在网上找到了比如传递context参数的说法,但是android学的时间不长(才一周),不是很理解,希望大家能给我答疑解惑。 展开
首先就是在activity中重写了openFileOutput这个函数,然后在子线程中new了一个主activity(类名叫test)类,在对象中调用这个方法。
然后就是子线程构造函数中,传入this指针在调用,也不行,我在网上找到了比如传递context参数的说法,但是android学的时间不长(才一周),不是很理解,希望大家能给我答疑解惑。 展开
展开全部
你在Activity里面new一个abc类的对象出来不就行了。[mw_shl_code=java,true]abc test = new abc(this);
[/mw_shl_code]
然后再想调用方法的地方调用啊。
[mw_shl_code=java,true]test.mainactivity.showDialog();[/mw_shl_code]
[/mw_shl_code]
然后再想调用方法的地方调用啊。
[mw_shl_code=java,true]test.mainactivity.showDialog();[/mw_shl_code]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类似这样既可:
public MainActivity extend Activity {
MyThread myThread;
public void onCreate() {
myThread = MyThread myThread(this);
}
class MyThread implements Runnable {
private Context mContext
public myThread(Context context) {
mContext = context;
}
public void run() {
context.openFileOutput
//....
}
}
}
public MainActivity extend Activity {
MyThread myThread;
public void onCreate() {
myThread = MyThread myThread(this);
}
class MyThread implements Runnable {
private Context mContext
public myThread(Context context) {
mContext = context;
}
public void run() {
context.openFileOutput
//....
}
}
}
追问
还是不行啊,context.openFileOutput(fileName, MODE_APPEND);报错,说是MODE_APPEND cannot be resolved to a variable。
追答
这个问题就与你提的问题没啥关系了,要如下方式使用:
mContext.openFileOutput(fileName, Context.MODE_PRIVATE);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将context传给线程,这样线程就拥有了这个context的引用啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看是否因为你的activity是否配置了,如果没有配置是会直接报错的。而且可以贴出具体的错误信息来,看看哪里出了问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
线程里新建文件为什么不用File类呢?何必非得用Activity里的方法。
追问
确实是可以,但是我主要是想知道在非activity类中如何使用activity方法,正好借这个问题咨询一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询