如何在单击列表视图时启动特定的新活动

问题描述 投票:0回答:1

我正在寻找一个包含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 ....

java android android-studio listview onclicklistener
1个回答
0
投票

如何添加更多意图?

© www.soinside.com 2019 - 2024. All rights reserved.