2017-12-08 5 views
1

単純なブラウザでリンクを開く必要があるときに、アプリケーションのリンクを使用する方法は2つあります。リンクを文字列に保存するベストプラクティス

むしろ私はかなり醜い

<string name="link_openBrowser_calendar" translatable="false">/schedule/</string> 

としてstrings.xmlファイルに保存しますと言うか、単に私が持っているいくつかのケースでは

final static final String linkSchedule = "/schedule/"; 

としてConstants.javaファイルに保存することができます追加のパラメータを必要とするそのようなリンクがたくさんあります

<string name="link_openBrowser_account_byId" translatable="false"> 
    /accounts/account/?id=%1$s 
</string> 

またはさらに多くのパラメータ

<string name="view_meeting_time_inOneDay_period">%1$s at \n%2$s – %3$s</string> 

これは文字列の一部を翻訳する必要がある場合に便利ですが、コード内ではかなり大量で読みにくいようです。

String time = mEvent.isAllDay() ? getString(R.string.view_meeting_time_inOneDay_allDay, isTodayStr) 
       : getString(R.string.view_meeting_time_inOneDay_period, isTodayStr, startStr, finishStr); 

これらの方法のどれがスケーラビリティ、パフォーマンス、または鮮明さの点でより生産的ですか?ある時点では、このリンクをどこに保存するかが重要だと考えています。それらは常に使用されておらず、「外出先で」しか必要ではなく、むしろそれらをstaticとして保存するのに費やしています。

答えて

0

アプリケーションにテキスト文字列と書式をオプションで指定する必要がある場合は、strings.xmlが便利です。たとえば、文字列を他の言語に翻訳するために使用することができます。 Androidはユーザー環境設定を確認し、正しいローカリゼーションフォルダ(valuesは基本言語で、values-xxは他の言語を表します)からstrings.xmlファイルを選択します。一方、グローバルスコープで使用する必要がある他の文字列には、別のクラス(例:Constants.java)を使用する必要があります。この種の定数文字列をConstants.javaに定義するのがベストプラクティスです。

関連する問題