Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按字符串文本获取字符串数组_Android_Arrays_String - Fatal编程技术网

Android 按字符串文本获取字符串数组

Android 按字符串文本获取字符串数组,android,arrays,string,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 Adapt

我有以下代码:

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

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

与其直接在适配器中传递getStringArrayR.array.Europe返回的数组,不如在外部创建字符串数组引用。在用户交互的基础上,检查用户选择了什么,并在条件语句中获取字符串数组,引用适配器中传递的引用数组,然后通知适配器。希望你能回答这个问题。使用以下代码将您的代码更改为已初始化的适配器

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

    ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(countries2.this,
            android.R.layout.simple_list_item_1,
            array
            );
当用户代表该用户交互更改选项时,请重新填充阵列并通知适配器,您可以使用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));

不太清楚您想做什么我尽量不预设getStringArrayR.array.Europe;我尝试根据用户交互动态设置getStringArray。所以我有不同的阵列欧洲,非洲,美国,。。。并希望在应用程序运行时动态显示它们。它应该显示在Listview中。数组包含包含更多信息的项显示我可以这样做吗?我是Android开发的新手。很高兴能帮助你
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));