首页 > 解决方案 > 如何“导出保存的数据并将该数据传输到 Android 中的新活动”

问题描述

我将 SQLite 数据保存在 android 中;但是当我调用数据将其传输到另一个活动时,它只会通过另一个活动传输数据库中的最后一个数据。我需要在哪里设置编码?谢谢。

这是一个 Android Studio 3.0 和 SQLite。过去,我尝试过在 SQLite 数据库中导出保存的数据并将该数据传输到新活动。我的数据库中总是只有最后一个数据。


我在主要活动中的代码

 private void xuLyXemLuotLike(View view) {
        database = openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, null);
        Cursor cursor = database.query("ArirangSongList", null, null, null, null, null, null);
        //dsBaiHatGoc.clear();
        int soLike = 0;
        int soDislike = 0;
        String mabh ="";
        String tenbh = "";
        String casi = "";
        Music music = new Music();
        while (cursor.moveToNext()) {
            mabh = cursor.getString(0);
            tenbh = cursor.getString(1);
            casi = cursor.getString(3);
            soLike = cursor.getInt(6);
            soDislike = cursor.getInt(7);
            music.setMa(mabh);
            music.setTen(tenbh);
            music.setCaSi(casi);
            music.setSoLike(soLike);
            music.setSoDislike(soDislike);
          //  dsBaiHatGoc.add(music);
        }
        cursor.close();
            Intent intent = new Intent(MainActivity.this, XemLuotLikeActivity.class);
            intent.putExtra("mabh",mabh);
            intent.putExtra("tenbh", tenbh);
            intent.putExtra("casi", casi);
            intent.putExtra("soLike", soLike);
            intent.putExtra("soDislike", soDislike);
            startActivity(intent);
        }

我在另一个活动中的代码:

    txtKetQua= (TextView) this.<View>findViewById(R.id.txtKetQua);
    Intent intent =getIntent();

    String mabh =intent.getStringExtra("mabh");

    String tenbh =intent.getStringExtra("tenbh");
    String casi =intent.getStringExtra("casi");

    int soLike =intent.getIntExtra("soLike", 0);
    int soDislike =intent.getIntExtra("soDislike",0);

    txtKetQua.setText(mabh + "   " + tenbh + "   " + casi + "   " + soLike+ "   " + soDislike);

我在另一个活动中的代码

我在主要活动中的代码

标签: androidsqlite

解决方案


尝试这个

    ArrayList<Music> musicList = new ArrayList<Music>();
    while (cursor.moveToNext()) {

       // first add implements Serializable to Music class
       // make constructor with respective parameters
         Music music = new Music(cursor.getString(0), cursor.getString(1), cursor.getString(3), cursor.getString(6), cursor.getString(7));

        musicList.add(music);
    }
    cursor.close();

   Intent intent = new Intent(MainActivity.this, XemLuotLikeActivity.class);
   intent.putExtra("musicList",musicList);            
   startActivity(intent);

然后在 XemLuotLikeActivity Activity oncreate()

ArrayList<Music> musiclist = (ArrayList<Music>) intent.getSerializable("musicList");

or
musiclist = (ArrayList<Music>) getIntent().getSerializableExtra("musicList");

推荐阅读