web-dev-qa-db-ja.com

android:文字列配列からアイテムを取得し、テキストビューで1つずつ表示します

タイトルを書いているので、文字列配列から項目を取得してテキストビューで1つずつ表示するために、ここでいくつかの助けが必要です。リストビューですべてを取得するコードがありますが、ランダムに毎回1つずつテキストビューで表示する必要があります私のコードと私の悪い英語についてすみません、とにかく助けてくれてありがとう...

public class MainActivity extends ListActivity {

String[] mTestArray;

    /** Called when the activity is first created. */
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        // Create an ArrayAdapter that will contain all list items
        ArrayAdapter<String> adapter;

        mTestArray =   getResources().getStringArray(R.array.planets_array);    

        /* Assign the name array to that adapter and 
        also choose a simple layout for the list items */ 
        adapter = new ArrayAdapter<String>(
                this,
                Android.R.layout.simple_list_item_1,
                mTestArray);

        // Assign the adapter to this ListActivity
        setListAdapter(adapter);
    }
}

XMLファイル:

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView

        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_centerHorizontal="true"
        Android:layout_centerVertical="true"
        Android:text="@array/planets_array"
/>
</RelativeLayout>

文字列配列ファイル:

<?xml version="1.0" encoding="utf-8"?>

<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
    </string-array>
</resources>
9
Ahmed Samir

わかりました、コメントで私はあなたが必要なものを理解し、そのための私の答えを編集しました。配列の値をランダムにtextViewに表示したいとします。

このアクティビティを使用します。

public class MainActivity extends Activity {

    String[] mTestArray;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sample);

        mTestArray =   getResources().getStringArray(R.array.planets_array);    

    }

    @Override
    protected void onResume() {
        super.onResume();
        updateTextView();
    }

    private void updateTextView() {
        TextView textView = (TextView)findViewById(R.id.randomTextView); 
        Random random = new Random();

        int maxIndex = mTestArray.length;
        int generatedIndex = random.nextInt(maxIndex);

        textView.setText(mTestArray[generatedIndex]);   
    }
}

このレイアウトをres/layoutフォルダーに配置し、sample.xmlという名前を付けます。

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
            Android:id="@+id/randomTextView"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_centerHorizontal="true"
            Android:layout_centerVertical="true"/>
</RelativeLayout>
19
Devrim