0

それらのアクティビティで同じコードを使用したい複数のアクティビティがあります。各アクティビティに同じコードをまとめて完成させました。この冗長コードを最小限に抑えるにはどうすればよいですか。これを行うために、オブジェクトを作成して冗長性を取り除くためにそのメソッドを使用したくありません...

助けてください...ありがとう....

4

2 に答える 2

5

解決策は簡単です。Activity クラスを拡張し、必要なすべてのメソッドを追加します。(私は通常、このクラスを BaseActivity と呼びます)
次に、新しいアクティビティを開発する場合、クラス Activity を拡張する代わりに、作成したクラス BaseActivity を拡張します。これには、追加したメソッドが含まれます。

public class BaseActivity extends Activity
{
protected int mSomeValue;

protected void someMethod1()
{

}

protected void someMethod2()
{

}

protected void someMethod3()
{

}

}

class SomeActivity extends BaseActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    someMethod1();
}
}

class SomeActivity2 extends BaseActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    someMethod1();
}
}
于 2012-04-08T06:07:44.537 に答える
5

「BaseActivity」を作成し、その単一のクラスに多くのコードを含めてから、クラスを作成してその「BaseActivity」を拡張することができます。

ここにあなたが探していると思うものがあります:

public class BaseActivity extends Activity {

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}   

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()){

    case R.id.donate:  
        //something
        break;

    case R.id.about_menuitem:  
        //something
        break;

    case R.id.exit:  
        finish();
        break;         

    default:
        return true;
    }
    return true;
}   
}

「BaseActivity」というクラスを作成しました。このクラスには Android オプション メニューがあり、「Activity」も拡張します。「Activity」を拡張し、このクラスにオプション メニューがあるので、他のすべてのクラスに同じメニュー コードを使用できるようになりました。

新しいクラスを作成し、「BaseActivity」で拡張するだけです。

public class SomeOtherActivity extends BaseActivity {
 //new code here
}

これで、"SomeOtherActivity" というクラスがメニュー コードと "Activity" を継承します。

これを試してみて、これが役立つことを教えてください!

于 2012-04-08T06:09:50.540 に答える