从SQLite数据库将数据从一个活动发送到另一个活动

时间:2015-08-21 04:25:09

标签: android sqlite

我想从表中检索所有记录并在另一个活动中显示它,但是当我这样做时,我一次又以相反的顺序获得一条记录。

我希望单项活动中的所有记录

    @Override
    public void onClick(View v) {
        Intent i = new Intent(MainActivity.this, ViewAllActivity.class);//

        while (c.moveToNext()) {    
            i.putExtra("rollno", c.getString(0));
            i.putExtra("name", c.getString(1));
            i.putExtra("marks", c.getString(2));
            startActivity(i);
        }    
    }
});

ViewAllActivity

    String rollno=getIntent().getStringExtra("rollno");
    String name=getIntent().getStringExtra("name");
    String marks=getIntent().getStringExtra("marks");
    TextView text;

    text=(TextView) findViewById(R.id.text);

    String str="Roll no:"+rollno+"\nName:"+name+"\nmarks:"+marks;
    text.setText(str);

3 个答案:

答案 0 :(得分:1)

你必须创建一个模型来做同样的事情。

示例:

.attr({
        height: 30,
        y: 20,
        x: function (d) {
            return barMARGINS.left + d.x;
        },
        width: function (d) {
            return d.value;
        }
    })

<强>为MyModel

ArrayList<myModel> modelList = new ArrayList<>();

       while(c.moveToNext()){
         MyModel myModel = new MyModel();

         myModel.setRollNumber(c.getString(0));
         myModel.setName(c.getString(1));
         myModel.setMark(c.getString(2));
         modelList.add(myModel);

                    }
                }
            });

intent.putParcelableArrayListExtra(TAG, modelList);
startActivity(intent);

模型应该实现Parcelable或Serializable

答案 1 :(得分:0)

我更喜欢在按钮点击中启动您的活动,并在第二个活动中检索数据。

@Override
    public void onClick(View v) {
        Intent i = new Intent(MainActivity.this, ViewAllActivity.class);
        startActivity(i);
    }
});

ViewAllActivity

   //retrieve data to your cursor
    String str = "";
    while(c.moveToNext()){
        str = str + "Roll no:" + rollno + "\nName:" + name + "\nmarks:" + marks;
        text.setText(str);
    }

答案 2 :(得分:0)

如果我是你,我只是开始新的意图活动,在第二个活动的某个方法中,oncreate或onstart从db检索你的数据。

但是如果你想把你的数据捆绑发送给另一个,你必须考虑一些事情

1.-你必须创建一个你要发送的对象的lis。

2.-发送带有捆绑的arraylist或对象,你必须实现并扩展Parcelable接口,否则会失败。

3.-如果您使用发送数据vía捆绑,不是一个好主意,可能会削弱您的性能,只要想想如果您的列表是很多对象,并且您想发送vis bundle,app会慢一点。所以想一想。

问候。