web-dev-qa-db-ja.com

すべてのハードコードされた文字列を文字列リソースに抽出します

私は知っています Alt + Enter 単一の文字列を文字列リソースに抽出するための組み合わせ。しかし、プロジェクトのすべての文字列を文字列リソースに抽出できるものはあるのでしょうか。

また、Androidスタジオでは、文字列リソースの1つを作成しても、同じ文字列が作成されません。

String s = "Hello World";
String s2 = "Hello World";

例えば。 「Hello World」を文字列リソースにして、プロジェクト内でも同じファイルに別のハードコードを残しています。

String s = getString(R.string.helloworld);
String s2 = "Hello World";

誰かがそのようなことを知っているなら。

16
Shabbir Dhangot

あなたの要件として、そして私が知っているように、あなたが本当に探していたAndroid studioにはそのような機能はありませんが、ここにあなたを助けることができるいくつかの代替方法があります。

  • Analyze> Run Inspection .. "と入力し、"Hardcoded strings"。プロジェクト全体でそれを実行すると、プロジェクトのハードコードされたすべてのテキストを示す検査結果パネルが表示されます。次にヒット Alt + Enter その文字列を自動的に抽出するオプションが表示されます。

  • 別のアプローチはFind and Replaceですが、時間を消費するため、良くありません。アプローチを単純化するために、柔軟性のために here を見ることができます。

17
Shree Krishna

Android 3.2.1では、Edit->Find->Find In Path...に移動してAndroid:text="を検索できます。これにより、xml filesのハードコードされたすべての文字列のリストが表示されます。

Toast.makeTextを検索して、Java filesからすべてのトーストアイテムを見つけます。

setText("を検索すると、Java filesなどのテキストセットが検索されます。

このようにして、プロジェクト全体で見つけて置き換えたいアイテムを検索できます。

1
DragonFire

XMLレイアウトファイル内のハードコードされた文字列の場合:

[分析]-> [名前で検査を実行]->ハードコードされた文字列を入力->プロジェクト全体を選択-> [OK]をクリックします。ここでは、ハードコードされたすべての文字列をxmlレイアウトファイルから取得します。

ハードコードされたテキストをクリック-> Alt + Enter->リソースから抽出->その文字列に対応するリソース名を入力-> OK

Javaクラスコードのハードコードされた文字列の場合:

分析->名前で検査を実行->ハードコードされたテキストを入力->プロジェクト全体を選択-> OKをクリックします。ここでは、ハードコードされたすべての文字列をJavaクラスファイルから取得します。このファイルは、uがstrings.xmlに抽出できるのは次の方法のみです。

ハードコードされたテキストをクリック-> Alt + Enter->リソースから抽出->その文字列に対応するリソース名を入力-> OK-> Javaコードで作成された各文字列リソースにgetStringを追加。

したがって、ハードコードされた文字列-> Javaクラスコードに対し、ハードコードされたテキスト-> Android Studio。

0
Prajwal W