1

如何在android中调用非静态方法?我已经尽我所能,但没有。我在java中尝试过这段代码并成功运行,但为什么在android中总是出错。这是主要活动的代码。

public class Main extends Activity{
private Coba mstatus;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    public void onClick(View v) 
        {
        switch (v.getId()){
        case R.id.download:
                    ....

                    break;

        case R.id.resume:
            mstatus.resume();
            break;

        }
}

这是第二课。

public abstract class Coba implements runnable{

....

public void resume(){
download();
}
public void download() {
mThread = new Thread(this);
mThread.start();
}    

}

我想调用resume()方法。在我的源代码中没有任何警告和错误,但是当我尝试调用此方法时,它总是强制关闭。还有另一种方法可以从另一个类调用非静态方法吗?

4

1 回答 1

0

这是一个Java问题而不是Android问题:

首先 Coba 是抽象的,所以你应该使用一个非抽象类,让我们称这个类为 CobaImpl 或使 Coba 成为一个非抽象类(你选择)。

其次,您应该创建类的实例以使用非静态方法(例如 mstatus = new CobaImpl(...) 在其他地方您只能使用静态方法。

于 2012-11-10T15:53:05.720 回答