有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java获取要在ListView中显示的ArrayList字符串编号/位置

我有一个带有3列自定义列表适配器的ListView。两个列数据来自SQLite,一个用于显示项目位置(在自定义列表适配器上生成)。输出如下:

1         Keyboard        3
2         Mouse           6
3         Monitor         8

但现在我想从ArrayList中获取序列号1,2,3。不在自定义列表适配器中。因此,在某些情况下,我可以发送其他SQLite列,而不是序列号1,2,3

package com.example.itsre.myapplication;

import 安卓.support.v7.app.AppCompatActivity;
import 安卓.os.Bundle;
import 安卓.widget.ArrayAdapter;
import 安卓.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    ListView list_view;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        list_view = findViewById(R.id.list_view);

        initialize();
    }

    private void initialize() {
        ArrayList<String> list_with_number = new ArrayList<>();
        list_with_number.add("Keyboard");
        list_with_number.add("Mouse");
        list_with_number.add("Monitor");

        ArrayAdapter array_adapter = new ArrayAdapter<>(this, 安卓.R.layout.simple_list_item_1, list_with_number);
        list_view.setAdapter(array_adapter);
    }


}

那么我可以从ArrayList中获取序列号以显示在上面的代码中吗?或者我只是创建另一个自定义列表适配器(其中不包含序列号生成)


共 (3) 个答案

  1. # 1 楼答案

    如果序列号始终在1,2,3之间,则可以使用

    arraylist。获取(位置+1)

    如果您的序列号不同,您可以使用

    arraylist。得到(位置)。getSerialNo()

  2. # 2 楼答案

    您只需获取索引号并将其显示为序列号即可。但是当数组从0开始时,每次显示索引时都必须添加1

    要创建序列号数组,可以运行如下循环

     ArrayList<String> listWithSerialNumber = new ArrayList<>();
            for (int i = 0; i < list_with_number.size(); i++) {
                listWithSerialNumber.add(String.valueOf(i + 1));
            }
    

    但我建议你选择回收者的观点。因为它更好,更简单,更可定制Here是recyclerView的一个很好的例子

  3. # 3 楼答案

    这是最好的办法

    String names[]={"Keyboard","Mouse","Monitor"};
    
        ArrayAdapter array_adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, names);
        list_view.setAdapter(array_adapter);