1

我试图使用数组中的数据制作 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();   
          }
        });
4

2 回答 2

1

我需要获取单击行的 ID(未显示在该行中,但在创建该产品时使用)

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();
于 2013-01-14T19:32:02.977 回答
1

从位置,您可以使用 raidList.get(position) 获取 RaidWpis 对象。一旦你有了这个 RaidWpis 对象,你就可以调用 getId() 来获取 id

于 2013-01-14T19:32:21.510 回答