0

关于这个活动:

public class ListfileActivity extends Activity {

public int MainId;
private ListView lv;
private ArrayList<String> listview_array = new ArrayList<String>();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    // Read page from DB
    DatabaseHandler db = new DatabaseHandler(this);
    List<Item> items = db.getAllItemCid();   

    // Add to array
    for (Item cn : items) {
        listview_array.add("ID : " + cn.getId() + " Title : " + cn.getTitle());
    }

    // Make list view
    lv = (ListView) findViewById(R.id.listView1);
    lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listview_array));
    lv.setTextFilterEnabled(true);
    lv.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            Intent item = new Intent(getApplicationContext(), ItemfileActivity.class);
            item.putExtra("id", arg2);
            startActivity(item);
        }
    });
}
}

我从数据库中通过 db.getAllItemCid() 获取所有需要的日期,并制作带有数据的列表视图,问题是我需要在这些部分添加数组元素位置:

for (Item cn : items) {
        listview_array.add("ID : " + cn.getId() + " Title : " + cn.getTitle());
}

我想将每个行 ID 添加为位置(这是我每行的行 ID: getId() )并在 onItemClick 部分上选择位置。作为额外: item.putExtra("id", arg2);

并将 id ( position ) 发送到下一个活动。

这段代码可以工作,只是我需要将位置设置为 id ,现在它从 0 设置为 ... ,我想将每一行 id 添加为位置。

4

1 回答 1

0

请参阅以下代码片段。第四个参数本身返回所选项目的位置。

lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int id, long position ) { Intent item = new Intent(getApplicationContext(), ItemfileActivity.class); item.putExtra("id" , id); startActivity(item); } });

于 2013-05-28T16:52:59.730 回答