>
Boa tarde,
Estou com problemas em rodar o primeiro programa do curso de Android, já havia acontecido na aula 3 do curso gratis tbm..
Estou na parte de criação de bd, inclusão dos produtos no spinner.
Quando vou rodar o programa, ele aparece que infelizmente o programa teve q fechar, e fecha sozinho..
Como devo proceder?
Obrigado
Ola Renato ,
poste o seu codigo aqui....
Esse é o MainActivity:
package br.com.rof.veiculos;
import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SQLiteDatabase db = openOrCreateDatabase("abastecimento.db", Context.MODE_PRIVATE, null);
StringBuilder sqlVeiculos = new StringBuilder();
sqlVeiculos.append("CREATE TABLE IF NOT EXISTS [veiculos](");
sqlVeiculos.append("[_id] INTEGER PRIMARY KEY AUTOINCREMENT, ");
sqlVeiculos.append("nome varchar(50), ");
sqlVeiculos.append("descricao varchar(50));");
db.execSQL(sqlVeiculos.toString());
db.execSQL("INSERT INTO veiculos(nome, descricao) VALUES('Kombi','abc')");
db.execSQL("INSERT INTO veiculos(nome, descricao) VALUES('S10-170','abc')");
db.execSQL("INSERT INTO veiculos(nome, descricao) VALUES('S10-171','abc')");
StringBuilder sqlPosto = new StringBuilder();
sqlVeiculos.append("CREATE TABLE IF NOT EXISTS [posto](");
sqlVeiculos.append("[_id] INTEGER PRIMARY KEY AUTOINCREMENT, ");
sqlVeiculos.append("veiculo INTEGER, ");
sqlVeiculos.append("posto varchar(50), ");
sqlVeiculos.append("Km DOUBLE(10,2), ");
sqlVeiculos.append("valor DOUBLE(10,2), ");
sqlVeiculos.append("quanticomb DOUBLE(10,2), ");
sqlVeiculos.append("la DOUBLE(10,9), ");
sqlVeiculos.append("lo DOUBLE(10,9));");
db.execSQL(sqlPosto.toString());
db.close();
}
public void NovoAbastecimento_Click(View v){
startActivity(new Intent(getBaseContext(), NovoAbastecimentoActivity.class));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, 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);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.main, container, false);
return rootView;
}
}
}
Renato,
veja se o erro é esse...
depois do 'abc');
tem q ter um ;
ficando assim
db.execSQL("INSERT INTO veiculos(nome, descricao) VALUES('Kombi','abc');");
Arrumei essas 3 linhas:
db.execSQL("INSERT INTO veiculos(nome, descricao) VALUES('Kombi','abc');");
db.execSQL("INSERT INTO veiculos(nome, descricao) VALUES('S10-170','abc');");
db.execSQL("INSERT INTO veiculos(nome, descricao) VALUES('S10-171','abc');");
e msm assim o problema permanece...
Airton,
vc fez so esse MainActivity.java ou tem outros??
tem la um botao............ kd a criacao do botao no seu MainActivity??
Bom dia,
Há sim outra activity, esta:
package br.com.rof.veiculos;
import android.os.Bundle;
import android.view.View;
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class NovoAbastecimentoActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.novo_abastecimento);
Spinner spVeiculos = (Spinner)findViewById(R.id.spVeiculos);
SQLiteDatabase db = openOrCreateDatabase("abastecimento.db", Context.MODE_PRIVATE, null);
Cursor cursor = db.rawQuery("SELECT * FROM veiculos ORDER BY nome ASC", null);
String[] from = { "_id", "nome", "descricao"};
int[] to = {R.id.txvId, R.id.txvNome, R.id.txvDescricao};
SimpleCursorAdapter ad = new SimpleCursorAdapter(getBaseContext(), R.layout.spinner, cursor, from, to);
spVeiculos.setAdapter(ad);
Button btnSalvar = (Button)findViewById(R.id.btnSalvar);
btnSalvar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Ação de quando clicar no botão
}
});
}
public void Salvar_Click(View view){
//Ação de quando clicar no botão
}
}
Opa Renato,
vc viu a criacao do botao salvar ????.....
Então, eu não cheguei nessa parte da aula ainda, mas o programa na aula funciona até aí e o meu não...
estou falando desse button aqui
public void NovoAbastecimento_Click(View v){
startActivity(new Intent(getBaseContext(), NovoAbastecimentoActivity.class));
}
vc tem um botao no seu MainActivity???
Crie ele q nem vc fez no novoAbastecimentoActivity
la tem o botao Salvar .....
faca o curso de android gratis aqui do site
http://rlsystem.com.br/curso-android-gratis/
Consegui, o activity que eu havia declarado no manifest estava com erro..
problema resolvido, obrigado pela atenção