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

次のコード スニペットを参照してください。4 番目のパラメーター自体は、選択されたアイテムの位置を返します。

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(項目); } });

于 2013-05-28T16:52:59.730 に答える