我有多个活动,我想在这些活动中使用相同的代码。 我在每个活动中使用相同的代码完成了它。 如何最小化这个冗余代码。 为此,我不想创建对象并使用它的方法来消除冗余......
Plz帮助...... 谢谢你......
答案 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”。
请尝试一下,让我知道这有帮助!