0

印刷されたパンフレットのアプリ版を書いています。パンフレットは複数の言語で提供されます。印刷された形式 (1 つの言語の場合) では、約 12 ページの長さしかありません。

アプリ起動時のメイン画面は目次(TOC)です。目次の見出しをクリックすると、パンフレットの 1 ~ 2 ページのセクションである「章」が開きます。これは、デバイス上の垂直スクロール画面になります。左/右にスワイプすると、パンフレットの前/次の章が表示されます。TOCActivity と DisplayChapterActivity の 2 つのアクティビティを使用する予定です。これは、指示されたチャプターのコンテンツを表示します。

パンフレットは数年ごとに更新されるだけなので、ネットワークに接続していなくてもパンフレットにアクセスできるように、データをデバイスに保存したいと考えています。私の計画は、アプリのインストール時にすべての言語バージョンをデバイスにダウンロードして、ユーザーがいつでも任意のバージョンに切り替えることができるようにすることです。パンフレットはすべてテキストであり、それほど長くないため、これはストレージに対する大きな需要ではありません.

アプリのメニューやタイトルなどをローカライズする方法は知っていますが、各「チャプター」の内容についてはどうすればよいでしょうか。また、それを保存する最良の方法は何ですか? 章にはいくつかの段落があるため、それほど長くはありませんが、ローカライズされた values/* XML ファイルに複数行の文字列を格納するのは悪い考えだと思います。

2 つのオプションが表示されます。

  1. 章を SQL lite データベースに入れます。
  2. 各章を別のテキスト ファイルに入れる

この質問には 2 つの部分があります。

  1. この場合、上記のオプションのどれがストレージに適していますか?
  2. チャプターをロードするときに使用する言語バージョンを DisplayChapterActivity に伝えるにはどうすればよいですか? これは、国際化に使用されるロケールにリンクできますか?それとも、そのためにアプリ固有の構成オプションが必要ですか?

注: これは私が書いた最初のアプリです。必要に応じて、質問の内容を明確にしていただければ幸いです。

4

1 に答える 1

0

1 - この場合、上記のオプションのどれがストレージに適していますか?

最大 1,000 万のファイルを保存しながら、FILESYSTEM と SQLITE の比較

SQLite と FileSytem のどちらを使用するかを決定するのに役立ちます。

2 - チャプターをロードするときにどの言語バージョンを使用するかを DisplayChapterActivity に伝えるにはどうすればよいですか? これは、国際化に使用されるロケールにリンクできますか?それとも、そのためにアプリ固有の構成オプションが必要ですか?

デバイスの選択された言語を取得したい場合。これはあなたを助けるかもしれません

Locale.getDefault().getDisplayLanguage();

私の答えがあなたを素晴らしい解決に導くことを願っています。

ありがとう :)

于 2012-07-22T20:31:13.760 に答える