3

我试图传递ContentValues插入到数据库。

public long createEntry(String name, String description) {
        ContentValues cv = new ContentValues();
        cv.put(KEY_NAME, name);
        cv.put(KEY_DESCRIPTION, description);
        return ourDatabase.insert(DATABASE_TABLE, null, cv);

    }

这种方法有效。但现在我想知道如何通过意图将其传递给其他形式。我只知道使用意图来传输视图/表单,但不知道如何传递数据。

public void onClick(View v) {
        Log.i("lol","hello");
        switch (v.getId()) {
        case R.id.oil:
            Intent i = new Intent("com.gtxradeon.brands.FirstBrandActivity");
            startActivity(i);
            finish();
            break;
        case R.id.android:
            Intent i1 = new Intent(this, FirstBrandActivity.class);
            startActivity(i1);
            break;

        default:
            break;
        }

最后,Bundles 和 ContentValues 有什么区别。

4

2 回答 2

3

ContentValues 用于将数据更新/插入到永久存储数据结构中,如 SQLite 数据库。ContentValue使用s 来防止 SQL 注入很重要。

另一方面,Bundles 用于在Activitiesusing Intents 之间传递数据。例如,

Bundle bundle = new Bundle();
bundle.putString("name", "John Doe");
Intent intent = new Intent();
intent.putExtras(bundle);

您可以通过以下方式检索Bundle下一个Activity

Bundle bundle = getIntent().getExtras();
String string = bundle.getString("name");

实现相同结果的另一种更常见的方法是:

Intent intent = new Intent();
intent.putExtra("name", "John Doe");

然后在Activity你得到的Intent

Intent receivedIntent = getIntent();
String name = receivedIntent.getStringExtra("name");
于 2013-11-13T04:03:06.243 回答
1

通常,内容值用于 Sql 等数据库中。我建议以某种方式将价值从一项活动传递到另一项活动。

1.捆绑。2.共享偏好。3.静态变量。

捆:-

Bundle b=new Bundle();
b.putString("key","value you need to retrieve in another activity");
b.putString("name","nikhil");
Intent i=new Intent(ctx,Youractivityname.class);
i.putExtras(b); 
StartActiviyt(i);

在您的下一个活动页面中

Intent get=getIntent();
Bundle b=get.getExtras();
 if(b!=null){
 String name=b.getString("name");
}

共享偏好:-

SharedPreferences sp;
SharedPreferences.Editor edit;
   sp = getSharedPreferences("enter", MODE_PRIVATE);
                     edit = sp.edit();
                     edit.putString("username", nikhil);

                     edit.commit();

在接下来的活动中

    SharedPreferences sp = getSharedPreferences("enter", MODE_PRIVATE);
    user.setText(sp.getString("username", "default value"));

静态变量:- 在第一个活动中:-

static String s="nikhil";

在下一个活动中:-

String n=firstactivity.s
于 2013-11-13T04:35:41.983 回答