【问题标题】:getStringArray by string text通过字符串文本获取StringArray
【发布时间】:2017-11-05 13:14:07
【问题描述】:

我有以下代码:

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

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

【问题讨论】:

  • 不太清楚你要做什么
  • 我尽量不预设 getStringArray(R.array.Europe);我尝试根据用户交互动态设置 getStringArray。所以我有不同的数组(欧洲、非洲、美国……),并希望在应用程序运行时动态显示它们。它应该显示在列表视图中。该数组包含具有更多信息的项目

标签: android arrays string


【解决方案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));

【讨论】:

  • 很高兴为您提供帮助
【解决方案2】:

而是直接在适配器中传递 getStringArray(R.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
            );

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

【讨论】:

  • 我该怎么做?我是 Android Dev 的新手。
猜你喜欢
  • 1970-01-01
  • 2019-07-03
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多