2016-10-11 9 views
0

最近、私はいくつかの外部デバイスを制御するためのAndroidアプリを書いています。さまざまな種類のデバイスがありますが、それらは非常に似ています。したがって、デバイスを制御するための各アクティビティのレイアウトも非常に似ています。たとえば、すべてのレイアウトは基本的に同じtextviews、editviewsおよびbuttonsを持っています。違いは、1つのデバイスがリストビューを持っているが、他のデバイスはリストビューを持っていないことです。Android:類似のレイアウトでさまざまなアクティビティの実装を簡略化する方法

ここでは、各デバイスの各レイアウト(およびそれぞれのアクティビティ)をコピーし、各アクティビティでいくつか変更します。私はそれが冗長であると感じています、そして、私はそれを実装するためのもう少し単純で/より効率的な方法がなければならないと思いますが、どうですか?

ありがとうございます。

+0

すべての一般的なタスクのフラグメントを実装し、特殊なケースのための1を実装しています。あなたの活動でこれらを再利用してください。 –

答えて

0

あなたはタグを使用して、レイアウトの共通部分を再利用することができが再利用されるウィルレイアウト/例から、この場合のレイアウトで

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/app_bg" 
android:gravity="center_horizontal"> 

<include layout="@layout/example"/> 

<TextView android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/hello" 
      android:padding="10dp" /> 

... 

が含まれます。ここ

詳細: https://developer.android.com/training/improving-layouts/reusing-layouts.html#Include

+0

これにより、各アクティビティで同じコード部分をコピーする必要があるようです。たとえば、次のようになります。EditText exampleText =(EditText)findViewById(R.id.edtExampleText); – eepty

+0

はい、同じレイアウトに対して異なるロジックを作成できます。 ロジックとレイアウトが同じ場合は、フラグメントを使用できます。 https://developer.android.com/guide/components/fragments.html – szymon1013

関連する問題