带有对象的 Android ArrayAdapter 并从该对象获取一些数据

标签 android object android-arrayadapter

我试图使用 Array 中的数据制作 ListView,但我需要获取点击行的 ID(未显示在该行中,但在创建该产品时使用)

我将此类用于对象:

package com.example.raidplanner;
public class RaidWpis {
private int id;
private int id_gildia;
private String nazwa;
private int schemat;
private int data_zapis;
private int data_start;
private int opis;
private int id_officer;
private int nick_officer;
private int typ;

public RaidWpis(int id,String nazwa) {
    setNazwa(nazwa);
    setId(id);
}

public int getId()                  { return id; }

public void setId(int id)           { this.id = id; }

public String getNazwa()            { return nazwa; }

public void setNazwa(String nazwa)  { this.nazwa = nazwa; }

public String toString() {
        return this.nazwa;
    }
    public String toString2() {
        return this.id+" - "+nazwa;
    }

}

Activity 中的这段代码:

RaidWpis[] items = {
            new RaidWpis(1, "aaaa"),
            new RaidWpis(3, "bbbb"),
            new RaidWpis(6, "cccc"),
            new RaidWpis(11, "dddd"),
            new RaidWpis(17, "eeee"),
        };        
    mainListView = (ListView) findViewById( R.id.mainListView );  

    ArrayAdapter<RaidWpis> raidList = new ArrayAdapter<RaidWpis>(this, R.layout.simplerow, items);  

    // Create ArrayAdapter using the raid list.  
    mainListView.setAdapter(raidList);

    mainListView.setOnItemClickListener(new OnItemClickListener() {
          @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) 
          {
                String item = ((TextView)view).getText().toString();
                Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();   
          }
        });

最佳答案

I need to get Id of clicked row (not shown in that row, but userd in creation of that product)

在您的 onItemClick() 方法中试试这个:

RaidWpis obj = parent.getAdapter().getItem(position); // or just raidList.get(position) if raidList is a field variable
Toast.makeText(getBaseContext(), obj.getID() + "", Toast.LENGTH_LONG).show();

关于带有对象的 Android ArrayAdapter 并从该对象获取一些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14325231/

相关文章:

python - 类型错误 : 'str' object is not callable while calling function in loop

javascript - 在javascript中对数据进行排序

android - 如何使用 Tag 代替 R.id。在自定义 ArrayAdapter 的构造函数中?

java - 每次我获取 pdf 文件时,我的 ArrayAdapter 堆栈

java - java/android中注册监听器,一个小问题

Javascript:使用单个属性删除对象数组中的重复项

android - 从我的 Android 应用程序链接到其他应用程序

java - 如何在 Android 上的 Spinner 中使用 itemClickListener

android - Valgrind Android 错误日志包装器

android - 圆形进度条(用于倒数计时器)