我正在寻找一个包含100多个条目/活动的列表。单击列表的任何条目后,应该打开一个活动,我设法做到了:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position==0){
Intent intent0 = new Intent(view.getContext(), first.class);
startActivityForResult(intent0,0);
}
else if(position==1){
Intent intent1 = new Intent(view.getContext(), second.class);
startActivityForResult(intent1,0);
}
但是为了使浏览列表更容易,我通过以下方式对列表进行了排序:
Collections.sort(ListOfObjects, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
return o1[0].compareToIgnoreCase(o2[0]);
}
});
这会导致问题,无论单击哪个条目,无论单击哪个条目,都将打开与该职位关联的活动,但不会打开与该条目关联的活动。因此,我的问题是如何基于单击的条目/条目名称而不是基于条目的位置来打开特定活动?我很乐意提供帮助。
其余代码:
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView listView = findViewById(R.id.Objektliste);
searchView = findViewById(R.id.Searchview);
final ArrayList<String[]> ListOfObjects = new ArrayList<>();
arrayAdapter = new ArrayAdapter<String[]>(this, android.R.layout.simple_list_item_2, android.R.id.text1, ListOfObjects){
// Code for subitem
@Override
public View getView(int position, View convertView, ViewGroup parent){
View view = super.getView(position, convertView, parent);
String[] entry = ListOfObjects.get(position);
TextView text1 = view.findViewById(android.R.id.text1);
TextView text2 = view.findViewById(android.R.id.text2);
text1.setText(entry[0]);
text2.setText(entry[1]);
return view;
}
};
listView.setAdapter(arrayAdapter);
//a searchbar/filter which doesnt work either but thats for another day
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
arrayAdapter.getFilter().filter(newText);
return false;
}
});
//Items and subitems put into my list
ListOfObjects.add(new String[] {"first", "first1"});
ListOfObjects.add(new String[] {"second","second1"});
ListOfObjects.add(new String[] {"third","third1"});
//and so on
//sort
Collections.sort(ListOfObjects, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
return o1[0].compareToIgnoreCase(o2[0]);
}
});
//onClick
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position==0){
Intent intent0 = new Intent(view.getContext(), first.class);
startActivityForResult(intent0,0);
}
else if(position==1){
Intent intent1 = new Intent(view.getContext(), second.class);
startActivityForResult(intent1,0);
}
else if(position==2){
Intent intent2 = new Intent(view.getContext(), third.class);
startActivityForResult(intent2,0);
}
else if(position==3){
Intent intent3 = new Intent(view.getContext(), fourth.class);
startActivityForResult(intent3,0);
}
}
});
}
}
我正在寻找一个包含100多个条目/活动的列表。单击列表的任何条目后,应该打开一个活动,我设法做到了以下操作:listView ....
如何添加更多意图?