2012-04-08 12 views
0

私はそれらのアクティビティで同じコードを使用したい複数のアクティビティを持っています。 私は、各アクティビティで同じコードの束を持って終了しました。 この冗長コードを最小限に抑える方法私は、オブジェクトを作成し、それが冗長性を除去する方法です使用したいいけないこれを行うための ...オブジェクトを作成せずにAndroidで重複コードを最小限に抑える方法

Plzを助けて... は解決策は簡単です....

+0

なぜ冗長性を減らすために別のオブジェクトを使用したくないのですか? –

+0

@JacobPhillips:coz私が読んだことは、オブジェクトを作成するとリソースやパフォーマンスなどの面でコストがかかるかもしれないということです。モバイルアプリケーションでは推奨されません...ねえ、私が間違っているかどうかを教えてください...私はアンドロイドに新しい... –

+0

私はあなたが共通の(冗長な)メソッドを持ち、他のアクティビティが継承する新しいクラスにそれらを含めるべきだと思います。あなたはメモリ使用量を意識したいと思っていますが、かなりシンプルなオブジェクトを作成することは、この(そしてほとんどの)状況では完全に受け入れられます。 –

答えて

5

をUに感謝:、クラスの活動を拡張します彼にあなたが望むすべての方法を加えてください。 (私は通常、例えば、このクラスBaseActivityを呼び出す)
そして、あなたは新しい活動を開発しているとき - の代わりに、クラスの活動を拡張 - あなたが追加されたメソッドが含まれている、あなたが作ったクラス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(); 
} 
} 
+0

説明のために感謝しています...それは私を助けました... –

+0

あなたを歓迎します、いつも助けてよろしく –

+0

しかし、私は決着として私の質問をマークしていませんか? –

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のオプションメニューを持っていると私はまた、「アクティビティ」を拡張します。私は "アクティビティ"を拡張し、このクラスのオプションメニューを持っているので、私は他のすべてのクラスに対してこの同じメニューコードを使うことができます。

私は単に私の新しいクラスを作成し、「BaseActivity」でそれらを拡張:

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

今「SomeOtherActivity」と呼ばれるクラスには、私のメニューコードとも「アクティビティ」を継承します。

これを試してみてください。

関連する問題