2016-05-10 6 views
-5

この質問は非常に基本的です。私に例を挙げてみましょう。 I持っている2つのアクティビティAndroidビューのIDを作成する

  • activity_a.xml

  • ActivityA.java

  • activity_b.xml

  • ActivityB.java

両方のXMLファイルには、単純なテキストを表示するTextViewのみが含まれています。いつものように、TextViewsは対応する.javaファイルのビューIDを使って参照されます

私の質問は、同じIDの両方のXMLファイルでTextViewを参照するのが正しいのですか?

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 
    <TextView 
    android:id="@+id/textview" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 
</LinearLayout> 

(activity_a.xmlとactivity_b.xmlためのまったく同じIDで以下のコードを使用してように)私は何の問題もなく、この手順を実施しました。 (Windowsの場合)をクリックCtrlキー+を使用してTextViewのための対応するXMLコードに到達しようとすると、私は二つの選択肢(activity_a.xmlまたはactivity_b.xmlからからのTextViewのXMLコードを表示する)を提供しています。

また、Androidでビューに名前を付けるにはどうすればよいでしょうか? Androidプロジェクトに複数のレイアウトファイルが含まれている場合は、これが役立ちます。

+0

ありがとうございます。あなたは私の疑問を解決した – Traveller

+0

しかし、なぜ私に-veの評価を提供するのですか?私の質問に何が間違っているの? – Traveller

答えて

0

同じIDの両方のXMLファイルでTextViewを参照するのが適切な場合は、

コンパイラは、1つのビュー階層のIDだけを参照します。

例:。?私にはActivityA.java内部findViewById(R.id.textview)だけactivity_a.xml内のTextViewのIDを検索します(あなたは事前にsetContentView(R.layout.activity_a);を持っていると仮定し

のAndroidでの表示に名前を付けるための推奨方法は何である

あなたの意見をアプリ全体を通して一貫して伝える必要があります。主な目的は、誤解や混乱を避けることです。

それが助けてくれることを願っています!

0

これらはさまざまなアクティビティがあるため、同じIDを使用しても問題はありません。それらを両方とも@+id/textviewとして宣言することができます。ただし、両方のアクティビティで同じXMLファイルを使用するだけではどうですか?あなたができない理由はありません。 valuesフォルダの下にids.xmlファイルを作成し、すべてのIDをその下に宣言することもできます。したがって、レイアウトで宣言する必要はありませんが、これはあまり一般的ではありません。

1

異なるレイアウトのビューまたはビューグループの名前が同じであれば、そのレイアウトファイルが属するレイアウトファイルから、必要なレイアウトファイルを選択するように求められます。

ので、そのためにあなたは混乱

https://github.com/ribot/android-guidelines/blob/master/project_and_code_guidelines.md

またはユーザー名のTextViewの場合はホーム活動 と activity_profile_tvUserNameからユーザ名のTextView場合 activity_home_tvUserNameのような名前を付けることができ、このタイプのを避けるために、適切な命名規則に従わなければなりませんプロフィール活動から。

0

同じIDの両方のXMLファイルでTextViewを参照するのが適切な場合は、

私の答えははい、そうです。

setContentView(R.layout.activity_a)を設定するたびに、上記のアクティビティ内の指定されたIDを検索します。同じidを持つローカル属性は、同じidを持つ他の属性よりも優先されます。

しかし、一意のIDを持つことがベストプラクティスです。

関連する問題