在表单之间传递bundle / ContentValues以及bundle之间的ContentValues之间的差异

时间:2013-11-13 03:17:54

标签: java android xml sqlite

我尝试将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之间有什么区别..我已经尝试阅读Android的谷歌教程但它让我更加困惑。

2 个答案:

答案 0 :(得分:3)

ContentValue用于将数据更新/插入到SQLite数据库等永久存储数据结构中。使用ContentValue来防止SQL注入非常重要。

另一方面,Bundle用于使用ActivitiesIntent之间传递数据。例如,

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");

答案 1 :(得分:1)

通常,内容值在数据库中使用,如Sql。 我建议将值从一个活动传递给另一个活动。

1.Bundle。 2.Shared偏好。 3.static变量。

软件包: -

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: -

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