错误:hashmap中的put(java.lang.string,list<;string>;)无法应用于(java.util.list<;java.lang.string>;)
我是一个初学者,正在学习教程,只是不明白我做错了什么。我试着问一下教程的主人,但没有任何运气。我在尝试构建和消耗性菜单时收到标题中提到的错误。listGroup给出了从第72行到第76行的错误错误:hashmap中的put(java.lang.string,list<;string>;)无法应用于(java.util.list<;java.lang.string>;),java,android,arrays,hashmap,Java,Android,Arrays,Hashmap,我是一个初学者,正在学习教程,只是不明白我做错了什么。我试着问一下教程的主人,但没有任何运气。我在尝试构建和消耗性菜单时收到标题中提到的错误。listGroup给出了从第72行到第76行的错误(listItem.put(listGroup.get(0),list1;)。看起来我用错了HashMap。我使用的是Android Studio 3.6.1。请帮帮我。提前谢谢你 package com.mystartup.start; import android.os.Bundle; import
(listItem.put(listGroup.get(0),list1;)
。看起来我用错了HashMap。我使用的是Android Studio 3.6.1。请帮帮我。提前谢谢你
package com.mystartup.start;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.widget.ExpandableListView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class MenuActivity extends AppCompatActivity {
ExpandableListView expandableListView;
List<String> listGroup;
HashMap<String,List<String>> listItem;
MainAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
assert getSupportActionBar() != null; //null check
getSupportActionBar().setDisplayHomeAsUpEnabled(true); //show back button
expandableListView = findViewById(R.id.expanded_listview);
listGroup = new ArrayList<>();
listItem = new HashMap<>();
adapter = new MainAdapter(this,listGroup,listItem);
expandableListView.setAdapter(adapter);
initListData();
}
private void initListData() {
listGroup.add(getString(R.string.group1));
listGroup.add(getString(R.string.group2));
listGroup.add(getString(R.string.group3));
listGroup.add(getString(R.string.group4));
listGroup.add(getString(R.string.group5));
String[] array;
List<String> list1 = new ArrayList<>();
array = getResources().getStringArray(R.array.group1);
for (String item : array){
list1.add(item);
}
List<String> list2 = new ArrayList<>();
array = getResources().getStringArray(R.array.group2);
for (String item : array){
list2.add(item);
}
List<String> list3 = new ArrayList<>();
array = getResources().getStringArray(R.array.group3);
for (String item : array){
list3.add(item);
}
List<String> list4 = new ArrayList<>();
array = getResources().getStringArray(R.array.group4);
for (String item : array){
list4.add(item);
}
List<String> list5 = new ArrayList<>();
array = getResources().getStringArray(R.array.group5);
for (String item : array){
list5.add(item);
}
listItem.put(listGroup).get(0),list1;
listItem.put(listGroup).get(1),list2;
listItem.put(listGroup).get(2),list3;
listItem.put(listGroup).get(3),list4;
listItem.put(listGroup).get(4),list5;
adapter.notifyDataSetChanged();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);
return true;
}
@Override
public boolean onSupportNavigateUp(){
finish();
return true;
}
}
package com.mystartup.start;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.MenuInflater;
导入android.widget.ExpandableListView;
导入androidx.appcompat.app.appcompat活动;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
公共类菜单活动扩展了AppCompatActivity{
ExpandableListView ExpandableListView;
列表组;
HashMap列表项;
主适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
断言getSupportActionBar()!=null;//null检查
getSupportActionBar().setDisplayHomeAsUpEnabled(true);//显示后退按钮
expandableListView=findViewById(R.id.expanded\u listview);
listGroup=newarraylist();
listItem=newHashMap();
适配器=新的主适配器(此、列表组、列表项);
expandableListView.setAdapter(适配器);
initListData();
}
私有void initListData(){
add(getString(R.string.group1));
add(getString(R.string.group2));
add(getString(R.string.group3));
add(getString(R.string.group4));
add(getString(R.string.group5));
字符串[]数组;
List list1=新的ArrayList();
array=getResources().getStringArray(R.array.group1);
for(字符串项:数组){
清单1.添加(项目);
}
List list2=新的ArrayList();
array=getResources().getStringArray(R.array.group2);
for(字符串项:数组){
清单2.添加(项目);
}
List list3=新的ArrayList();
array=getResources().getStringArray(R.array.group3);
for(字符串项:数组){
清单3.添加(项目);
}
List list4=新的ArrayList();
array=getResources().getStringArray(R.array.group4);
for(字符串项:数组){
清单4.添加(项目);
}
List list5=新的ArrayList();
array=getResources().getStringArray(R.array.group5);
for(字符串项:数组){
清单5.添加(项目);
}
listItem.put(listGroup.get)(0),list1;
listItem.put(listGroup.get)(1),list2;
listItem.put(listGroup.get)(2),list3;
listItem.put(listGroup.get)(3),list4;
listItem.put(listGroup.get)(4),list5;
adapter.notifyDataSetChanged();
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
MenuInflater充气机=getMenuInflater();
充气机。充气(右菜单。选项菜单,菜单);
返回true;
}
@凌驾
公共布尔onSupportNavigateUp(){
完成();
返回true;
}
}
Strings.xml代码:
<resources>
<string name="app_name">Start</string>
<string name="name">Profile:</string>
<string name="menu">Menu</string>
<string name="search">Search</string>
<string name="group1">Group 1</string>
<string name="group2">Group 2</string>
<string name="group3">Group 3</string>
<string name="group4">Group 4</string>
<string name="group5">Group 5</string>
<string-array name="group1">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string-array name="group2">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string-array name="group3">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string-array name="group4">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string-array name="group5">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
</resources>
开始
轮廓:
菜单
搜寻
第一组
第2组
第3组
第4组
第5组
项目1
项目2
项目3
项目1
项目2
项目3
项目1
项目2
项目3
项目1
项目2
项目3
项目1
项目2
项目3
您在此处使用了错误的语法:
listItem.put(listGroup).get(0),list1;
来自Map
API的put
方法包含2个参数。这两个参数都需要包装,如下所示:
listItem.put((listGroup).get(0), list1);
您在此处使用了错误的语法:
listItem.put(listGroup).get(0),list1;
来自Map
API的put
方法包含2个参数。这两个参数都需要包装,如下所示:
listItem.put((listGroup).get(0), list1);
谢谢!我快疯了,你救了我!没问题。此错误应该由IDE概述。如果您不使用,我强烈建议您使用。Eclipse是免费的,在社区中非常常用,但当然还有其他的。谢谢!我快疯了,你救了我!没问题。此错误应该由IDE概述。如果您不使用,我强烈建议您使用。Eclipse是免费的,在社区中非常常用,但当然还有其他的。