Boas noite,
Estou a tentar fazer uma pequena app que consiste pesquisar numa base de dados SQLite. Para a pesquisa irei usar duas formas, ou seja através do Numero ONU e através do Nome.
No entanto estou a deparar-me com um problema, a app estoura no caso de se tentar pesquisar sobre algum registo que não exista.
Como poderei fazer para que seja despoletada uma mensagem de erro no caso da pesquisa não encontrar um resultado?
DbHelper:
//Metodo ONU Query
public List<Elemento> getONU()
{
List<Elemento> listaElementos = new ArrayList<Elemento>();
//Seleccionar Query
String selectQuery = "SELECT *FROM " + TABLE_NAME + " WHERE ONU = " + MainActivity.editText_ONU_search.getText();
dbase = this.getReadableDatabase();
Cursor cursor = dbase.rawQuery(selectQuery, null);
//Loop por todas as linhas da BD e adiciona-las a lista
if(cursor.moveToFirst())
{
Elemento element = new Elemento();
element.setID(cursor.getInt(0));
element.setONU(cursor.getInt(1));
element.setNOME_SUB(cursor.getString(2));
listaElementos.add(element);
}
//Return listaElementos;
return listaElementos;
}
//Metodo Nome Query
public List<Elemento> getNomeSubstancia()
{
List<Elemento> listaElementos = new ArrayList<Elemento>();
//Seleccionar Query
String selectQuery = "SELECT * FROM " + TABLE_NAME + " WHERE NOME_SUB = '" + MainActivity.editText_NOME_search.getText() + "'";
dbase = this.getReadableDatabase();
Cursor cursor = dbase.rawQuery(selectQuery, null);
//Loop por todas as linhas da BD e adiciona-las a lista
if(cursor.moveToFirst())
{
Elemento element = new Elemento();
element.setID(cursor.getInt(0));
element.setONU(cursor.getInt(1));
element.setNOME_SUB(cursor.getString(2));
listaElementos.add(element);
}
//Return listaElementos;
return listaElementos;
}
OnuResultActivity:
package com.example.nuno.materiasperigosasexample;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import com.example.nuno.materiasperigosasexample.Database.DbHelper;
import com.example.nuno.materiasperigosasexample.Database.Elemento;
import java.util.List;
public class OnuResultActivity extends AppCompatActivity {
//Declaração de variaveis
List<Elemento> listaElementos;
int elemento_id = 0;
Elemento currentElemento;
TextView textView_onu, textView_nome_sub;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_onu_result);
DbHelper db = new DbHelper(this);
listaElementos = db.getONU();
currentElemento = listaElementos.get(elemento_id);
textView_onu = (TextView)findViewById(R.id.textView_onu);
textView_nome_sub = (TextView) findViewById(R.id.textView_nome_sub);
//Apresentar Info
setElementosView();
}
private void setElementosView() {
textView_onu.setText(Integer.toString(currentElemento.getONU()));
textView_nome_sub.setText(String.valueOf(currentElemento.getNOME_SUB()));
elemento_id++;
}
}
NomeResultActivity:
package com.example.nuno.materiasperigosasexample;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import com.example.nuno.materiasperigosasexample.Database.DbHelper;
import com.example.nuno.materiasperigosasexample.Database.Elemento;
import java.util.List;
public class NomeResultActivity extends AppCompatActivity {
//Declaração de variaveis
List<Elemento> listaElementos;
int elemento_id = 0;
Elemento currentElemento;
TextView textView_onu, textView_nome_sub;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nome_result);
DbHelper db = new DbHelper(this);
listaElementos = db.getNomeSubstancia();
currentElemento = listaElementos.get(elemento_id);
textView_onu = (TextView)findViewById(R.id.textView_onu);
textView_nome_sub = (TextView) findViewById(R.id.textView_nome_sub);
//Apresentar Info
setElementosView();
}
private void setElementosView() {
textView_onu.setText(Integer.toString(currentElemento.getONU()));
textView_nome_sub.setText(String.valueOf(currentElemento.getNOME_SUB()));
elemento_id++;
}
}
Alguma ideia de como poderei retornar uma mensagem de aviso quando a pesquisa não é encontrada de forma a cobrir a possibilidade de a pesquisa inserida pelo utilizador ser não corresponder ao que está na BD.
Cumprimentos
Psycop
↧