簡體   English   中英

獲取要在 ListView 中顯示的 ArrayList 字符串編號/位置

[英]Get ArrayList String number / Position to show in ListView

我有一個帶有 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 android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.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, android.R.layout.simple_list_item_1, list_with_number);
        list_view.setAdapter(array_adapter);
    }


}

那么我可以從 ArrayList 中獲取序列號以顯示在上面的代碼中嗎? 或者我只是創建另一個自定義列表適配器(其中不包含序列號生成)?

您可以簡單地獲取索引號並將其顯示為序列號。 但是當數組從 0 開始時,每次顯示索引時都必須加 1。

要創建序列號數組,您可以運行這樣的循環

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

但我會建議你使用回收器視圖。 因為它更好、更簡單、更可定制。 是 recyclerView 的一個很好的例子。

如果您的序列號總是從 1,2,3 開始,那么您可以使用

arraylist.get(位置+1);

或者

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

arraylist.get(position).getSerialNo();

這是最好的方法

String names[]={"Keyboard","Mouse","Monitor"};

    ArrayAdapter array_adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, names);
    list_view.setAdapter(array_adapter);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM