[英]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.