2010-12-28 4 views
4

次のコードを使用しているため、私のプロジェクトでカスタムコンポーネントを使用しています。Android XMLレイアウトで 'クラス名'を最適化する方法は?

<view 
    class="com.android.mypackage.myclass" 
    id="@+id/button" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@android:drawable/button" 
    android:padding="10dip" 
    /> 

私のアプリケーションでは、このコードを約35回近く使用しています。同じプロジェクトから新しいクローンアプリケーションを作成する際には、35箇所のパッケージ名を更新する必要があります。これらの努力を減らす方法はありますか?私は、「クラス=」@文字列/ CLASS_NAMEにしようとした「が、その動作していない

答えて

1

カスタムビューを元のパッケージに入れず、別のパッケージに入れてください。
次のように写真を置くこともできます。
alt text

とレイアウトXMLのコードそれはより便利である

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
> 
<MyView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
/> 
</LinearLayout> 


のようなものです。

+0

はい、あなたの助けをたくさんありがとう、あなたは私の多くのエネルギーを保存しました:) – Mac

+0

ちょうど注意:あなたのクラスをandroid.widgetパッケージに入れたら、既存のファイルと競合しないように注意してくださいSDKで、またはあなたのアプリはもう動作しません。 –

0

号は、あなたが唯一の書き込みに代替を持っています。

<com.android.mypackage.myclass 
    id="@+id/button" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@android:drawable/button" 
    android:padding="10dip" /> 

『クラス=』 @文字列/ CLASS_NAME」がないではありませんXMLからJavaコードを生成している間は、クラスの名前が一定であり、コンパイル時に利用可能でなければならないためです。

@ string/class_nameは、実行時にフィールドR.string.class_nameの値が「動的に」読み取られることを意味します。

関連する問題