mainActivity code
public class Mainactivity extends Appcompatactivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BancoDeDados bancoDeDados = new BancoDeDados(getBaseContext());
final Cursor cursor = bancoDeDados.obterAnimes();
String[] nomeCampos = new String[] {"_id", "nome"};
int[] idViews = new int[] {R.id.labelId, R.id.labelTitulo};
SimpleCursorAdapter adaptador = new SimpleCursorAdapter(getBaseContext(), R.layout.modelo_lista,cursor,nomeCampos,idViews,0);
ListView lista = (ListView)findViewById(R.id.listaDeAnimes);
lista.setAdapter(adaptador);
lista.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
cursor.moveToPosition(position);
Intent intent = new Intent(MainActivity.this, EditarAnime.class);
intent.putExtra("id", cursor.getInt(cursor.getColumnIndexOrThrow("_id")));
startActivity(intent);
finish();
}
});
}
public void abrirTelaCriarNovoAnime(View v){
Intent startNewActivity = new Intent(this, CriarAnime.class);
startActivity(startNewActivity);
}
}
screen code create anime
public class Criaanime extends Appcompatactivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_criar_anime);
}
public void voltar (View v){
Intent startNewActivity = new Intent(this, MainActivity.class);
startActivity(startNewActivity);
}
public void criarAnime (View v){
BancoDeDados bancoDeDados = new BancoDeDados(getBaseContext());
EditText nome = (EditText) findViewById(R.id.campoNome);
EditText numeroEpisodios = (EditText) findViewById(R.id.campoNumeroEpisodios);
EditText temporadas = (EditText) findViewById(R.id.campoTemporadas);
if( TextUtils.isEmpty(nome.getText())){
nome.setError( "Informe o nome do anime" );
}if (TextUtils.isEmpty(numeroEpisodios.getText())){
numeroEpisodios.setError("Informe o número de episódios");
}
if (TextUtils.isEmpty(temporadas.getText())){
temporadas.setError("Informe o a quantidade de temporadas");
}
else{
boolean resultado = bancoDeDados.criarAnime(nome.getText().toString(), numeroEpisodios.getText().toString(), temporadas.getText().toString());
if (resultado) {
Toast.makeText(this, "Anime criado com sucesso!", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "Infelizmente ocorreu um erro, tente novamente.", Toast.LENGTH_SHORT).show();
}
voltar(v);
}
}
}
screen code edits anime
public class Editaranime extends Appcompatactivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edita_anime);
BancoDeDados bancoDeDados = new BancoDeDados(getBaseContext());
final Cursor cursor = bancoDeDados.consultarAnimePeloId(this.getIntent().getIntExtra("id",0));
EditText nome = (EditText) findViewById(R.id.campoNome);
EditText numeroEpisodios = (EditText) findViewById(R.id.campoNumeroEpisodios);
EditText tempordas = (EditText) findViewById(R.id.campoTemporadas);
nome.setText(cursor.getString(cursor.getColumnIndexOrThrow("nome")));
numeroEpisodios.setText(cursor.getString(cursor.getColumnIndexOrThrow("numeroEpisodios")));
tempordas.setText(cursor.getString(cursor.getColumnIndexOrThrow("temporadas")));
}
public void voltar(View v){
Intent startNewActivity = new Intent(this, MainActivity.class);
startActivity(startNewActivity);
}
public void atualizarAnime(View v){
BancoDeDados bancoDeDados = new BancoDeDados(getBaseContext());
EditText nome = (EditText) findViewById(R.id.campoNome);
EditText numeroEpisodios = (EditText) findViewById(R.id.campoNumeroEpisodios);
EditText tempordas = (EditText) findViewById(R.id.campoTemporadas);
try {
bancoDeDados.atualizaAnime(this.getIntent().getIntExtra("id",0),nome.getText().toString(), numeroEpisodios.getText().toString(), tempordas.getText().toString());
Toast.makeText(this, "Anime atualizada com sucesso!", Toast.LENGTH_SHORT).show();
}catch (Exception ex) {
Toast.makeText(this, "Não foi possível atualizar o anime, tente novamente!", Toast.LENGTH_SHORT).show();
}
voltar(v);
}
public void excluiAnime(View v, SQLiteDatabase db){
BancoDeDados bancoDeDados = new BancoDeDados(getBaseContext());
EditText nome = (EditText) findViewById(R.id.campoNome);
EditText numeroEpisodios = (EditText) findViewById(R.id.campoNumeroEpisodios);
EditText tempordas = (EditText) findViewById(R.id.campoTemporadas);
try {
bancoDeDados.excluiAnime(this.getIntent().getIntExtra("id",0));
Toast.makeText(this, "Anime excluído com sucesso!", Toast.LENGTH_SHORT).show();
}catch (Exception ex){
Toast.makeText(this, "Não foi possível excluir o anime, tente novamente!", Toast.LENGTH_SHORT).show();
}
voltar(v);
}
}
code of the class manage bank
public class Gerenciarbanco extends Sqliteopenhelper {
public static final String NOME_BANCO = "bancoDeDados.db";
public static final int VERSAO = 1;
public GerenciarBanco(Context context){
super(context,NOME_BANCO,null,VERSAO);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql="CREATE TABLE animes (_id integer primary key autoincrement, nome text, numeroEpisodios text, temporadas text)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS animes");
onCreate(db);
}
}
database class code
public class Bancodedados {
public SQLiteDatabase banco;
public GerenciarBanco gerenciarBanco;
public BancoDeDados(Context context){
gerenciarBanco = new GerenciarBanco(context);
}
public boolean criarAnime(String nome, String numeroEpisodios, String temporadas){
banco = gerenciarBanco.getWritableDatabase();
ContentValues valores = new ContentValues();
valores.put("nome", nome);
valores.put("numeroEpisodios", numeroEpisodios);
valores.put("temporadas", temporadas);
long resultado = banco.insert("animes", null, valores);
banco.close();
return resultado > 0;
}
public Cursor obterAnimes(){
String[] campos = {"_id", "nome"};
SQLiteDatabase db = gerenciarBanco.getReadableDatabase();
Cursor cursor = db.query("animes", campos, null,null,null,null, "_id ASC");
if (cursor != null){
cursor.moveToFirst();
}
db.close();
return cursor;
}
public void atualizaAnime(int id, String nome, String numeroEpisodios, String temporadas){
SQLiteDatabase db = gerenciarBanco.getReadableDatabase();
String where = "_id = " + id;
ContentValues valores = new ContentValues();
valores.put("nome", nome);
valores.put("numeroEpisodios", numeroEpisodios);
valores.put("temporadas", temporadas);
db.update("animes", valores, where, null);
db.close();
}
public void excluiAnime(int id){
SQLiteDatabase db = gerenciarBanco.getReadableDatabase();
String where = "_id = " + id;
db.delete("animes", where, null);
db.close();
}
public Cursor consultarAnimePeloId(int notaId){
Cursor cursor;
String[] campos = {"_id", "nome", "numeroEpisodios", "temporadas"};
String where = "_id = " + notaId;
SQLiteDatabase db = gerenciarBanco.getReadableDatabase();
cursor = db.query("animes", campos, where, null,null,null,null,null);
if (cursor !=null){
cursor.moveToFirst();
}
db.close();
return cursor;
}
}
I will send the xml codes of the layout.
This is the default behavior of auto_increment , I think you can’t change, besides causing errors if you change because, delete and Edit, makes the operations most of the time based on id. You can however create an attribute and place the value according to its position in your Arraylist and display it instead of id.
– Bernardo Lopes
and how can I do it man, you can send me the code and where I need to put this code through the codes I sent there, only new in programming and n know mts things, I did it there through a course
– Rafael Figueiredo
Take a look here
– Bernardo Lopes
but n to do the way q ta ai, because my I am using the data that go to the database and already there it uses only the values q are in the text field, maybe if I did as you say, type I created a code field for the user to type and then it showed on the main screen this code and the name of the anime, however when I will put the id of the error code field says q n there is the column in the database msm if I have already created the column and only accept if it is this id
– Rafael Figueiredo