字符串文本的getStringArray

时间:2017-11-05 13:14:07

标签: android arrays string

我有以下代码:

ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(countries2.this,
            android.R.layout.simple_list_item_1,
            getResources().getStringArray(R.array.Europe));


    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Intent intent = new Intent(countries2.this, ListActivity.class);
            intent.putExtra("CountryName", listView.getItemAtPosition(i).toString());
            startActivity(intent);
        }
    });
    listView.setAdapter(mAdapter);

现在我想将getResources().getStringArray(R.array.Europe)设置为getStringArray(R.array.stringname) 所以我只想动态设置应用程序应该获得的数组(例如:欧洲,非洲,美国,......)

String stringname = "Europe" //or Africa, USA,...

如何动态设置应该获取的数组?

2 个答案:

答案 0 :(得分:1)

您可以使用 getIdentifier

试试这个,

String stringname = "Europe";
int resourceId = getResources().getIdentifier(stringname , "array",
            this.packageName);


ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(countries2.this,
        android.R.layout.simple_list_item_1,
        getResources().getStringArray(resourceId));

答案 1 :(得分:0)

相反传递getStringArray(R.array.Europe)直接在适配器中返回数组,在外面创建String数组引用。并且在用户交互的基础上检查用户选择了什么,并在条件语句中获取字符串数组并引用适配器中的引用传递数组,然后通知适配器。希望能回答这个问题。使用以下代码将代码更改为初始化适配器

  String [] array = getResources().getStringArray(R.array.Europe);

    ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(countries2.this,
            android.R.layout.simple_list_item_1,
            array
            );

当用户代表该用户交互更改选项时,重新填充数组并通知适配器