Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.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 在填充AutoCompleteTextView之前,将字符串数组转换为ArrayList有什么好处?_Android_Autocompletetextview - Fatal编程技术网

Android 在填充AutoCompleteTextView之前,将字符串数组转换为ArrayList有什么好处?

Android 在填充AutoCompleteTextView之前,将字符串数组转换为ArrayList有什么好处?,android,autocompletetextview,Android,Autocompletetextview,在资料页上,我找到了AutoCompleteTextView的以下示例: int layoutItemId = android.R.layout.simple_dropdown_item_1line; String[] dogArr = getResources().getStringArray(R.array.dogs_list); List<String> dogList = Arrays.asList(dogsArr); ArrayAdapter<String> a

在资料页上,我找到了
AutoCompleteTextView
的以下示例:

int layoutItemId = android.R.layout.simple_dropdown_item_1line;
String[] dogArr = getResources().getStringArray(R.array.dogs_list);
List<String> dogList = Arrays.asList(dogsArr);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, layoutItemId, dogList);

AutoCompleteTextView autocompleteView =
(AutoCompleteTextView) findViewById(R.id.autocompleteView);
autocompleteView.setAdapter(adapter);
int-layoutItemId=android.R.layout.simple\u下拉菜单\u项目\u 1line;
字符串[]dogArr=getResources().getStringArray(R.array.dogs\u列表);
List dogList=Arrays.asList(dogsArr);
ArrayAdapter=新的ArrayAdapter(this、layoutItemId、dogList);
自动完成文本视图自动完成视图=
(AutoCompleteTextView)findViewById(R.id.AutoCompleteTView);
autocompleteView.setAdapter(适配器);
资料来源:

这部分的重点是什么:

List<String> dogList = Arrays.asList(dogsArr);
List dogList=Arrays.asList(dogsar);

AutoCompleteTextView
也使用字符串数组时,为什么要将其转换为ArrayList?

当您只知道使用固定数量的元素时,应该使用数组。如果没有,请使用列表

我个人的意见是使用列表。列表使代码变得非常死板且易于使用。

  • 您可以在编译时初始化Java数组,如:
字符串数据[]={“a”、“b”、“c”}

  • 在旧版本的Java中,也存在类型安全问题。ArrayList元素必须强制转换为原始类型,而Java数组必须是类型安全的
  • Java数组是该语言的一部分,您将无法更改它们。ArrayList是JavaAPI的一部分。如果您需要(但我不建议这样做),可以替换您自己的库来实现ArrayList作业
检查此问题以了解更多信息


如果你有一个数组,它必须有一个固定的大小。动态添加和删除元素很难管理,每次添加新项时都必须创建新数组。类似地,用于删除项目

使用ArrayList很容易管理,因为它不是使用静态大小创建的。因此,在运行时,您可以轻松地添加和删除元素

ArrayList是此处使用的理想数据结构