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;
    }

}

そして、アクティビティのこのコード:

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 に答える