【问题标题】:android fill array string dynamicalandroid填充数组字符串动态
【发布时间】:2016-01-06 17:19:44
【问题描述】:

在我的 android 中,我有一个带有自动完成功能的 textview,如下所示:

String [] COUNTRIES = new String[] {
   "Belgium", "France", "Italy", "Germany", "Spain"
};

final AutoCompleteTextView editTextCountries = (AutoCompleteTextView) findViewById(R.id.editTextCountries);

ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, COUNTRIES);
editTextCountries.setAdapter(adapter);

这很好用。

现在我想动态设置国家。 在我给这些国家一个意图并让这个国家在课堂上使用这样的文本视图之前的一项活动:

String[] COUNTRIES = new String[] {
      getIntent().getExtras().getString("countries")
};

getIntent().getExtras().getString("countries")的Log.e:

“比利时”、“法国”、“意大利”、“德国”、“西班牙”

类似:

String [] COUNTRIES = new String[] {
   "Belgium", "France", "Italy", "Germany", "Spain"
};

但自动完成不能这样工作。 有什么想法吗?

【问题讨论】:

  • 你做getIntent().getExtras().getString(),它只有一个字符串,所以你创建一个只有一个元素的数组
  • mmmmh,好的,我怎样才能用我的意图字符串填充数组,以制作多个元素?
  • @SpecialFighter 为什么你的字符串被分组开始?

标签: java android


【解决方案1】:

在活动A中:

Intent intent = new Intent(this, ActivityB);
String[] COUNTRIES = new String[] {
    "Belgium", "France", "Italy", "Germany", "Spain"
};

intent.putExtra("countries", COUNTRIES);
startActivity(intent);

在活动B中:

public void onCreate() {
   Intent intent = getIntent();
   String[] countries = intent.getStringArrayExtra("COUNTRIES");
}

在活动A中:

String countries = "Belgium,France,Italy,Germany,Spain";

Intent intent = new Intent(this, ActivityB);

intent.putExtra("countries", countries);
startActivity(intent);

在活动 B 中:

public void onCreate() {
   Intent intent = getIntent();
   String[] countries = intent.getExtras().getString("countries").split(",");
}

【讨论】:

  • COUNTRIES = new String[] {getIntent().getStringArrayExtra("COUNTRIES")};比我得到一个错误:Required String, Found String[]
  • 按原样复制此代码。它对我来说很好。
  • 如果您的问题解决了,请采纳为正确答案
【解决方案2】:

这里getIntent().getExtras().getString("countries") 返回字符串,因此表格将包含一个字段。

你可以像这样how to get Hash table Arraylist to other intent?

【讨论】:

    【解决方案3】:

    与您问题中指定的方法的最简单和最接近的匹配答案是:

    将您的字符串值设置为:(分隔)

    Belgium|France|Italy|Germany|Spain
    

    并使用 split 将值放入您的字符串数组中:

    String[] countries = getIntent().getExtras().getString("countries").split("|");
    

    【讨论】:

      猜你喜欢
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 2017-02-23
      • 2017-02-02
      相关资源
      最近更新 更多