この活動について:
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 を位置として追加します。