0

私はAndroid開発に非常に慣れています。私のアプリには多くのビュー/アクティビティがあり、ユーザーは入力に応じてあるビューから別のビューにジャンプできます。だから私は機能を持つインターフェイスIViewを作成することを考えました

void openNewView(Class viewClass);

ビュークラスの関数は次のようになります

public void openNewView(Class viewClass)
{
    Intent intent = new Intent(this, viewClass.class);
    startActivity(intent);
}

全体的な考え方は、私のコントローラーがユーザー入力をリッスンし、要件に従ってopenNewViewを呼び出すことができるということです。

私が直面している問題は、JavaがClass型のパラメーターを受け入れないことです。

私がここで間違っているのは何ですか。私が達成しようとしていることを回避するための作業はありますか?

4

2 に答える 2

0

openNewViewメソッドに現在のコンテキストパラメータを次のように追加してみてください。

void openNewView(Class viewClass,context);

そしてあなたの関数で:

public void openNewView(Class viewClass,Context context)
{
    Intent intent = new Intent(context, viewClass.class);
    context.startActivity(intent);
}
于 2012-06-28T07:52:20.433 に答える
0

1つの良いアプローチは、次のような抽象的なアクティビティからすべてのアクティビティを拡張することです。

public abstract class BaseActivity {

    //....
    public void openNewView(Class viewClass) {
        Intent intent = new Intent(this, viewClass.class);
        startActivity(intent);
    }
}

このようにすることで、すべてのアクティビティでコードをコピーし、コードをクリーンに保つ必要がなくなります。

于 2012-06-28T07:57:33.237 に答える