单击一个列表视图传输两个列表视图数据

Posted

技术标签:

【中文标题】单击一个列表视图传输两个列表视图数据【英文标题】:Transfer two listview data on click of one listview 【发布时间】:2016-02-13 19:46:16 【问题描述】:

在我的活动中,我有两个包含一些数据的列表视图。在第一个列表视图上,选定的行将在单击时突出显示,并在单击第二个列表视图时新活动开始。 我想发送第一个列表视图的突出显示的行数据,并在下一个活动中单击第二个列表视图数据的行。我怎样才能做到这一点?

【问题讨论】:

How to pass object from one activity to another in android的可能重复 我已经看到了这些解决方案,但对我没有用,这就是我再次问这个问题的原因 它为什么不适合你?请提供更多详细信息。 它应该可以工作,发布您的代码。 有什么方法可以在不使用serialzable和parceable的情况下传输两个listview数据在其他activity上 【参考方案1】:

假设您的列表被命名为 list1list2,添加到您的 list2 onItemClickListener 中,应该如下所示:

public void onItemClick(final AdapterView<?> parent, final View view, final int position, final long id) 
            String highlightedItem = (String)list1.getSelectedItem();
            String clickedItem = (String)list2.getItemAtPosition(position);

            Intent intent = new Intent(FirstAcivity.this, SecondActivity.class);
            intent.putExtra("highlightedItem", highlightedItem);
            intent.putExtra("clickedItem", clickedItem);

            startActivity(intent);
        

然后在您的第二个活动中,您可以收到这样的物品:

@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    Intent intent = getIntent();

    if (intent != null)
        String highlightedItem = intent.getStringExtra("highlightedItem");
        String clickedItem = intent.getStringExtra("clickedItem");
    

我假设您的列表项属于 String 类型,但您可以将相同的逻辑应用于任何其他类型。 如果您想发送对象而不仅仅是原语,您需要使您的对象实现 SerializableParcelable 接口。

【讨论】:

感谢您的回复。我会试试的 如果我还想在下一个活动的列表视图中显示结果,那么我也需要做同样的事情。场景是我要求在两个列表视图上显示数据并在第一个列表视图上显示突出显示的行并在第二个列表视图上单击行,希望在下一个活动中发送该数据并在两个不同的列表视图中表示该数据。 能否请您更清楚您需要什么!如果这个答案对你有用,请接受它 我将 volley 用于 json 数据,并在两个不同的列表视图中显示该数据。当单击第一个列表视图行时,将突出显示,当单击第二个列表视图时,新活动开始。我希望第一个列表视图突出显示行数据,第二个列表视图单击下一个活动列表视图上的行数据。 我首先尝试了您的回答,它显示第二个列表视图数据无法绑定的错误,解决此问题后它不显示突出显示的列表视图数据

以上是关于单击一个列表视图传输两个列表视图数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从列表视图按钮单击将多个数据添加到数组列表?

Android:自定义列表视图列表元素点击

带有项目单击侦听器的列表视图在搜索视图中获取错误数据

如何子列表视图项目可以有每个项目的数据

单击列表视图项时检索的值

从列表视图中检索数据并将其显示在文本视图/图像视图中