2013-11-13 2 views
3

Я пробовал передать ContentValues для вставки в базу данных.Передача пакета/ContentValues ​​между формами и разницей между 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; 
     } 

и, наконец, в чем разница между Связки и ContentValues ​​.. Я пытался читать дальше Google учебники для андроид, но это заставило меня более запутанным.

ответ

3

ContentValue s используются для обновления/вставки данных в структуры данных постоянного хранения, такие как базы данных SQLite. Для предотвращения инъекций SQL важно использовать ContentValue.

Связи с другой стороны используются для передачи данных между Activities с использованием Intent. Например,

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

В целом значения содержимого используются в базе данных, такой как Sql. Мое предложение передать значения из одной активности в другую способами.

1.Bundle. 2.Shared Preferences. 3.статическая переменная.

Bundle: -

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

статическая переменная: - В firstactivity: -

static String s="nikhil"; 

В следующей деятельности: -

String n=firstactivity.s 
Смежные вопросы