私は始めたアクティビティを持っています。それは私のstrings.xmlからの文字列を格納したい配列を持っています。さらに、ボタンをクリックすると、TextViewのテキストが配列の次の要素に変更されました。ですから、ボタンをクリックするたびにTextViewにテキストを変更したいのです。テキストは配列から来ます。しかし、私はコードでのstrings.xmlから文字列を取得するための配列を取得することはできません。XMLからJavaの文字列をJava配列に直接挿入する方法
getString(R.string.word_1)
私のstrings.xmlは次のようになります。
<resources>
<string name="app_name">Name</string>
<string name="word_1">First</string>
</resources>
このArrayは、次のコードを持っている活動:私は、例えば、「第一」とのgetString(R.string.word_1)を置き換えるが、私はXMLファイルから単語を呼び出し、ハードそれらすべてをコーディングしないようにしたいとき
public class DisplayMenuActivity extends AppCompatActivity {
Button nextButton;
TextView word;
public String list[] = {getString(R.string.word_1)};
private int listNumber = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_menu);
//Word
word = (TextView) findViewById(R.id.word);
word.setText(list[0]);
//Button
nextButton = (Button) findViewById(R.id.nextButton);
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listNumber++;
if (listNumber >= list.length) {
listNumber = 0;
}
word.setText(list[listNumber]);
}
});
}}
それは作業を行います。だから、問題は、XMLからStringを呼び出すことであり、私は解決のためにインターネット上をすべて見てきましたが、それらはすべて機能しません。誰でも私が間違っていることを考えている?誰が探しているのか調べてくれてありがとう。それは有り難いです。
おかげで多くのことを
このアプリケーションコードは、文字列の配列を取得します。このコードは機能しましたが、私の前のコードがうまくいかなかった理由は何ですか?まだgetString(R.string.word_1)が機能しなかった理由を理解できません。私はエディタでエラーを生成しませんでしたが、私の携帯電話でアプリをクラッシュさせました。 –
クラスの初期化(つまりインスタンス作成時)でメソッド 'getString()'を呼び出すため、コードがクラッシュします。 Androdiシステムがアクティビティを作成することを決定すると、リソースを取得するためのコンテキストが不足する可能性があります。アクティビティでは、フィールドの初期化やコンストラクタに決してコードを書くべきではありません。これは 'onCreate()'メソッドの中で行うべきです。 – pdegand59