2

I have a ListView where I'm filling it in through String tutorialTitle1 = getResources().getString(R.string.tutorial1_title);, but for the purpose and functionality of my app I have no choice but to use a String-Array

I've never worked with the String-Array and I'd like some help to implement every item in my ListView. At the moment I'm doing it this way

public class tutorialActivity extends Activity{
    String[] values; 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tutorial);
        registerClickCallBack();
        ListView listView = (ListView) findViewById(R.id.tutorialList);

        String tutorialTitle1 = getResources().getString(R.string.tutorial1_title);
        String tutorialTitle2 = getResources().getString(R.string.tutorial2_title);
        String tutorialTitle3 = getResources().getString(R.string.tutorial3_title);
        String tutorialTitle4 = getResources().getString(R.string.tutorial4_title);
        String tutorialTitle5 = getResources().getString(R.string.tutorial5_title);
        String tutorialTitle6 = getResources().getString(R.string.tutorial6_title);
        String tutorialTitle7 = getResources().getString(R.string.tutorial7_title);
        String tutorialTitle8 = getResources().getString(R.string.tutorial8_title);
        String tutorialTitle9 = getResources().getString(R.string.tutorial9_title);
        String tutorialTitle10 = getResources().getString(R.string.tutorial10_title);
        String tutorialTitle11 = getResources().getString(R.string.tutorial11_title);
        String tutorialTitle12 = getResources().getString(R.string.tutorial12_title);
        String tutorialTitle13 = getResources().getString(R.string.tutorial13_title);
        String tutorialTitle14 = getResources().getString(R.string.tutorial14_title);

        values= new String[] { tutorialTitle1, tutorialTitle2, tutorialTitle3, tutorialTitle4, tutorialTitle5, tutorialTitle6, tutorialTitle7, tutorialTitle8, tutorialTitle9, tutorialTitle10, tutorialTitle11, tutorialTitle12, tutorialTitle13, tutorialTitle14};

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values);
        listView.setAdapter(adapter);


    }

    private void registerClickCallBack() {
        ListView list = (ListView) findViewById(R.id.tutorialList);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View viewClicked,int position, long id) {

                Intent i = new Intent(viewClicked.getContext(), tutorialContentActivity.class);
                i.putExtra("tutorialNumber", position);
                startActivity(i);
            }
        });
    }
}

But now R.string.tutorial1_title doesn't exist anymore because I've put it like

<string-array name="tutorialTitle">
    <item>Tutorial Content</item>
    <item>Tutorial Content</item>
    <item>Tutorial Content</item>
    <item>Tutorial Content</item>
    <item>Tutorial Content</item>
    <item>Tutorial Content</item>
    <item>Tutorial Content</item>
    <item>Tutorial Content</item>
    <item>Tutorial Content</item>
</string-array>

So basically how can I populate my Listview with all the items I have in my <string-array name="tutorialTitle">

1 Answer 1

10

Call getResources().getStringArray(R.array.tutorialTitle) to retrieve the String[] associated with your string-array resource.

Sign up to request clarification or add additional context in comments.

1 Comment

Just to keep in mind, you can set android:entries="@array/tutorialTitle" too.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.