13

以前にこの問題で誰かがバグを抱えていたかどうかはわかりませんが、それは私にとって大きな苦痛の1つです。

Androidのxml要素にIDをどのように指定しますか?

今のところ、パターン[アクティビティ/フラグメント名][要素タイプ][特定の名前]でIDを設定しています。たとえば、LoginActivityで使用される電子メールを保持するためのEditTextがある場合、IDは「LoginEditTextEmail」になります。

私が直面している問題は、このアプローチでは、IDが非常に長いものになることがよくあることです。

IDをどのように設定しますか?ベストプラクティスは何ですか?

4

4 に答える 4

0

コーディングでこれらを修飾しない限り、フラグメント、アクティビティ、およびタイプを削除します。

boolean isLoggedIn = false;

android:id="@+id/is_logged_in"

他の回答で述べたように、XML は修飾子を提供します。ここで、一貫性やさらなる修飾が必要かどうか、およびそれが適切かどうかを判断する必要があります。本当に資格を得る必要がありますか?資格を取得しない場合、コードをサポートすることはあなたや他の誰かにとってより困難になりますか?

ではどうstrings.xmlですか?

ID の前にフラグまたはアクティビティ修飾子を付けます。たとえば、次のようになります。

<string name="profile_is_logged_in_true">Logged in.</string>

<string name="profile_is_logged_in_false">Not logged in.%</string>

また…

<plurals name="plural_is_logged_in_duration">...

私はいじりました:

<string name="profile_isloggedin_false">Not logged in.</string>

しかし、まだ納得していません。これは実際には分類の問題であり、タグ付けによって他の分野で解決されています。Java はドット付きの名前空間と型修飾子を提供するため、

com.example.android.app.profile.State.isLoggedIn

Android は次のようなものを使用しR.stringます :-) したがって、Java に加えて、Android からのいくつかの追加の名前空間があります。複数の文字列リソース ファイルを持つことができることを忘れないでください。

res/values/widget_defaults.xml

たとえば a のデフォルト値を含めることができますTextView。true および false の文字列は複数形で処理する必要があります。

于 2013-02-10T11:28:42.497 に答える