Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android: get items from string array and show it one by one in text view

as i write in title i need some help here for get items from string array and show it one by one in text view i have code that got them all in list view but i need show them on text view one by one each time random here my code and sorry about my bad english ,thanks for help anyway ...

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 file:

<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>

and string array file:

<?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>
like image 802
Ahmed Samir Avatar asked Oct 27 '13 10:10

Ahmed Samir


1 Answers

Ok, with comments I understood what you need and edited my answer for that. You want to show values of your array in a textView randomly.

Use this activity:

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]);   
    }
}

Put this layout under res/layout folder and name it 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>
like image 193
Devrim Avatar answered Oct 22 '22 06:10

Devrim