Я ищу, чтобы обновить строку в базе данных SQLite. мне интересно, могу ли я обновить строку без ввода пользователя в строке? Мой код в настоящий момент требует, чтобы rowId передавался в DBAdapter, но я хотел бы устранить это и просто обновить строку, используя две другие переменные (элемент и литры). Возможно ли это?Обновление строки ввода SQLite
Это моя функция обновления в моем классе DBAdapter
//---updates a record---
public boolean updateRecord(long rowId, String item, String litres)
{
ContentValues args = new ContentValues();
args.put(KEY_ITEM, item);
args.put(KEY_LITRES, litres);
return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
}
это мой класс обновления,
package com.example.rory.dbtest;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.pinchtapzoom.R;
public class Update extends Activity {
public EditText updateItem;
public EditText updateLitres;
Button updateBtn;
DBAdapter db = new DBAdapter(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_update);
updateBtn = (Button)findViewById(R.id.updateBtn);
updateItem = (EditText)findViewById(R.id.updateItem);
updateLitres = (EditText)findViewById(R.id.updateLitres);
}
public void onClick(View v)
{
String item = updateItem.getText().toString();
String litres = updateLitres.getText().toString();
db.updateRecord(rowId, String item, String litres);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.update, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
//returning to the first activity, when here this calls the running functions ie. printing records
public void viewAssignments(View v)
{
Intent i = new Intent(this, MyActivity.class);
startActivity(i);
}
}
Какое же единственное ограничение в том, где предложение? – Amy
Могу ли я изменить ограничение на возврат db.update (DATABASE_TABLE, args, KEY_ITEM + "=" + item, null)> 0; –
это то, что я изменил функцию обновления в моем DBAdapter, и теперь я только передаю два значения, но я получаю сообщение об ошибке для этого общедоступного логического обновленияRecord (String item, String liters) { ContentValues args = new ContentValues (); args.put (KEY_ITEM, элемент); args.put (KEY_LITRES, литры); return db.update (DATABASE_TABLE, args, KEY_ITEM + "=" + item, null)> 0; } ' –