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”。由于我扩展了“活动”并在此类中有我的选项菜单,因此我现在可以对所有其他类使用相同的菜单代码。

我只是简单地创建我的新类并使用“BaseActivity”扩展它们:

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

现在名为“SomeOtherActivity”的类将继承我的菜单代码和“Activity”。

请尝试一下,让我知道这是否有帮助!

于 2012-04-08T06:09:50.540 回答