当前位置: 首页 > 知识库问答 >
问题:

列表项单击“详细信息”活动,从“列表视图”活动浏览下一个和上一个列表项

谭京
2023-03-14

我有两个活动,第一个包含列表视图,当用户单击该列表视图的列表项时,将启动详细信息视图活动(第二个活动)。

现在在第二个活动中,我有2个按钮,NEXT按钮和PREVIOUS按钮,所以当用户单击NEXT按钮时,必须显示第一个活动的下一个列表项。单击上一个按钮时,必须显示上一个列表项。

我在第一个活动中扩展了ArrayAdapter,以显示自定义列表项。适配器上有2个项目,即2个文本视图。

当用户单击并启动第二个活动时,这2个文本视图的详细信息将详细显示。并且要在项目中进行导航,返回到第一个活动,然后再次为每个项目启动第二个活动,这对用户来说是忙碌的场景,所以我想在详细视图活动本身中导航项目。那么我应该做什么?

到目前为止,我所做的是扩展了ArrayAdapter,因此从getView()方法中,我获取了位置值,然后在第二个活动中,我所做的是,

 next = (ImageView) findViewById(R.id.next);
    previous = (ImageView) findViewById(R.id.previous);

    next.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            position++;

            Log.e("position", String.valueOf(position));

        }
    });

    previous.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            position--;

            Log.e("position", String.valueOf(position));

        }
    });

但我不知道下一步该怎么办?

位置值取自第一个活动,有目的。putExtra(“位置”,position),并使用intent在第二个活动中获取。getStringExtra(“位置”)。

我甚至不能理解这个和那个,只是理论上的。提前谢谢。

编辑-1:

我在第一个活动中使用了自定义ArrayAdapter,在onclickListener上,我已应用,

 convertView.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(fActivity.this, sActivity.class);

                intent.putExtra("txt1", "name");

                intent.putExtra("txt2", "address");

                intent.putExtra("position", position);

                startActivity(intent);
            }
        });

此位置是从

public View getView(final int position, View convertView, ViewGroup parent) {
....
}

此方法位于

 class homeAdapter extends ArrayAdapter<list>

正如我之前在同一个小组中所写的那样。现在在第二个活动中,我必须使用“下一步”和“上一步”按钮在第二个活动中获取txt1和txt2。

共有3个答案

佘京
2023-03-14

为此,您必须使数组/列表保持全局,以便两个活动都可以访问它。您也可以通过将整个数组/列表按束传递给下一个活动来实现这一点。

你必须做以下事情:

  1. 将点击的位置和整个数组/列表放入捆绑包并将其发送到第二个活动。
  2. 从bundle中获取当前位置和数组/列表并显示当前位置的详细信息。
  3. 增加单击Next按钮时的位置,并从list.array中获取该位置的项目并显示该位置的详细信息。
  4. 单击上一个按钮时减小位置,并从list.array中获取该位置的项目并显示该位置的详细信息。
诸葛煜
2023-03-14

如果您有静态列表,并且不想动态更改列表数据,最简单的方法是将列表数据存储在字符串中。xml类似文件

<string-array name="textview1_items> 
<item>head1</item>
<item>head2</item>
<item>head3</item>
.
.
.
</string-array>

textview 2项目也是如此。

然后在列表适配器和第二个活动中从这些字符串数组中检索列表项。

要从java访问这些数组,您需要执行以下操作:

<代码>字符串[]标题=上下文。获取资源。getStringArray(R.array.textview1\u项) //在适配器中使用上下文,并在第二个活动中使用此上下文

现在,当用户单击列表项时,只需将选定项的位置传递给第二个活动并从字符串数组中检索该索引的信息。

希望有帮助!如果有任何疑问,请询问!

邹驰
2023-03-14

你只需要做,

在第二项活动中,

str1 = fActivity.listAdapter.getItem(position).data1;
str2 = fActivity.listAdapter.getItem(position).data2;

在第一次活动中,

public static ArrayAdapter<List> listAdapter;

好了,你可以得到你的答案。

干杯

 类似资料:
  • Oke所以我对android studio和android应用程序开发基本上是新手,但我想做一个应用程序,让我的青年运动可以用它作为一种数据库,但我遇到了一个问题。 我有一个包含所有组的抽屉,如果你按下抽屉按钮,它会打开一个包含名称的列表片段,我想做的是,当我按下名称时,会出现一个带有名称、照片和电话号码的活动。但我似乎不知道如何从列表片段中打开活动。 这里是ListFragment.java 这

  • 我已经在谷歌表单中创建了一个自定义表单。当用户按键盘上的[Enter]或[Tab]时,表单上数据字段的顺序与我想跳转到(下一个单元格)的顺序不同。是否有一个方法可以在工作表上使用(不使用谷歌应用程序脚本),我可以指定移动到下一个单元格。

  • 我做了一个列表视图。计划是,当你选择一个项目时,它应该显示为选中状态(背景颜色改变),当你选择另一个项目时,之前选择的项目再次正常。有办法做到这一点吗?我一直在尝试很多事情,但都没用。。。 这是我目前的代码。。。 标记其中一个是有效的,但删除选择是我的问题。有什么建议吗? 编辑:我要找的是,在我选择另一个项目之前,它一直处于选中状态

  • 问题内容: 在Python模块中,和用于分别标识左,中和右按钮的鼠标单击。 同样,用于返回键的按下。 在哪里可以找到所有此类事件的列表,包括各种键盘键的名称? Tcl绑定手册没有那些。 问题答案: 可以在effbot.org或New Mexico Tech提供 的文档中找到有关绑定和事件的常规列表,而此处除了原始文档之外,还列出了几个键的名称。 以下是最常见事件的摘要,并解释了一些按键名称:

  • Navicat 提供三种在主窗口查看对象的类型。在默认情况下,Navicat 在对象列表窗格使用 列表 查看。它只显示对象的名字。你可以从主菜单选择 查看 -> 列表 或在右下角点击 。 详细信息 查看以列显示数个对象的属性。要改变到详细信息查看,从主菜单选择 查看 -> 详细信息 或在右下角点击 。 要改变显示属性的列,从主菜单选择 查看 -> 选择列 并在弹出窗口为不同的对象选择显示的列。 除

  • 问题内容: 我正在制作一个可从中获取国家/地区数据(名称,纬度,经度,…)的应用,并创建一个,其中每个项目都是一个不同的国家/地区。 该部分正在运行,但是,每次我单击一个项目时,它都会打开MapActivity,地图以该国家/地区为中心。问题是我无法将坐标从MainActivity发送到MapsActivity。 问题答案: 实现,因此我们可以使用发送和接收对象 活动 在