如何获取listView位置值并通过intent传递给另一个类

Posted

技术标签:

【中文标题】如何获取listView位置值并通过intent传递给另一个类【英文标题】:How to get the listView position value and pass it to another class through intent 【发布时间】:2018-06-16 15:22:06 【问题描述】:

我有一个从 firebase 数据库中获取数据的列表视图。当用户点击一个项目时,他将被带到下一个屏幕。我如何获取他单击的项目的名称...假设他单击项目“A”并被定向到下一个班级。我希望在那里显示 A。我可以从意图中使用 putExtra 方法,但数据不在代码中,它在数据库中。有人可以帮我写代码吗

这是获取数据的代码,很好

ArrayList<String> arrayList = new ArrayList<>();
ListView listView = (ListView) rootView.findViewById(R.id.usersList);
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, al);
for(DataSnapshot ds : dataSnapshot.getChildren()) 
String name = ds.child("Name").getValue().toString();
//                    Log.d("TAG", name);
                al.add(name);
            
            listView.setAdapter(adapter);
        

我需要在 textview 中的下一堂课中显示该名称

   name.setText();

【问题讨论】:

【参考方案1】:

在你的活动中添加这个

 listView.setOnItemClickListener(new OnItemClickListener()

    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
     
        Intent intent =new Intent(getApplicationContext(),YourClassName.class);
        intent.putExtra("name",al.get(position));
        startActivity(intent);

    
);

现在正在接收活动:

name.setText(getIntent().getStringExtra("name"));

【讨论】:

【参考方案2】:

您可以创建一个自定义类适配器,您将在其中扩展一个数组适配器。在您重新定义 getView 方法并将一些信息放入意图将其发送到其他活动之后。

【讨论】:

以上是关于如何获取listView位置值并通过intent传递给另一个类的主要内容,如果未能解决你的问题,请参考以下文章

如何在适配器外部的 ListView 和 GridView 中获取项目位置?

无法从 ListView 通过 Intent 正确传递数据

通过 uri / 通过它包含的数据获取 ListView 项目位置

如何在 ListView 中仅显示偶数位置项?

如何检测ListView项的位置?

编辑 listView 值