それらのアクティビティで同じコードを使用したい複数のアクティビティがあります。各アクティビティに同じコードをまとめて完成させました。この冗長コードを最小限に抑えるにはどうすればよいですか。これを行うために、オブジェクトを作成して冗長性を取り除くためにそのメソッドを使用したくありません...
助けてください...ありがとう....
それらのアクティビティで同じコードを使用したい複数のアクティビティがあります。各アクティビティに同じコードをまとめて完成させました。この冗長コードを最小限に抑えるにはどうすればよいですか。これを行うために、オブジェクトを作成して冗長性を取り除くためにそのメソッドを使用したくありません...
助けてください...ありがとう....
解決策は簡単です。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();
}
}
「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" を継承します。
これを試してみて、これが役立つことを教えてください!