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;

        }
}

これは2番目のクラスです。

public abstract class Coba implements runnable{

....

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

}

メソッドを呼び出したいresume()。私のソースコードでは警告もエラーもありませんが、このメソッドを呼び出そうとすると常に強制的に閉じられます。別のクラスから非静的メソッドを呼び出す別の方法はありますか??

4

1 に答える 1

0

これは、Android の問題ではなく、Java の問題です。

まず、Coba は抽象であるため、非抽象クラスを使用する必要があります。このクラスを CobaImpl と呼ぶか、Coba を非抽象クラスにします (選択します)。

次に、非静的メソッドを使用するクラスのインスタンスを作成する必要があります (例: mstatus = new CobaImpl(...) 他の場所では、静的メソッドのみを使用できます。

于 2012-11-10T15:53:05.720 に答える