如何在不创建对象的情况下最小化Android中的重复代码

时间:2012-04-08 05:52:14

标签: android

我有多个活动,我想在这些活动中使用相同的代码。 我在每个活动中使用相同的代码完成了它。 如何最小化这个冗余代码。 为此,我不想创建对象并使用它的方法来消除冗余......

Plz帮助...... 谢谢你......

2 个答案:

答案 0 :(得分: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();
}
}

答案 1 :(得分: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”。

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