>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Unfortunately, Vendas has stopped


Alguém poderia me dar uma dica de como resolver?



7 Respostas



package br.com.rlsystem.vendas;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

SQLiteDatabase db = openOrCreateDatabase("vendas.db", Context.MODE_PRIVATE, null);

StringBuilder sqlProdutos = new StringBuilder();
sqlProdutos.append("CREATE TABLE IF NOT EXISTS [produtos] (");
sqlProdutos.append("[_id] INTEGER PRIMARY KEY AUTOINCREMENT, ");
sqlProdutos.append("nome VARCHAR(30), ");
sqlProdutos.append("preco DOUBLE(10,2));");
db.execSQL(sqlProdutos.toString());

db.execSQL("INSERT INTO produtos(nome,preco) VALUES('Coca Cola', '2.50')");
db.execSQL("INSERT INTO produtos(nome,preco) VALUES('Red Bull', '6.50')");


StringBuilder sqlVendas = new StringBuilder();
sqlVendas.append("CREATE TABLE IF NOT EXISTS [vendas] (");
sqlVendas.append("[_id] INTEGER PRIMARY KEY AUTOINCREMENT, ");
sqlVendas.append("produto INTEGER, ");
sqlVendas.append("preco DOUBLE(10,2), ");
sqlVendas.append("la DOUBLE(10,9), ");
sqlVendas.append("lo DOUBLE(10,9));");


}


public void NovaVendaClick(View v){
startActivity(new Intent(getBaseContext(), NovaVendaActivity.class));

}

public void ListarVendasClick(View v) {
startActivity(new Intent(getBaseContext(), ListarVendasActivity.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;
}

}





package br.com.rlsystem.vendas;

import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteCursor;
import android.database.sqlite.SQLiteDatabase;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
//import android.support.v4.widget.SimpleCursorAdapter;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class NovaVendaActivity extends Activity implements LocationListener{

private double la, lo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nova_venda);

Spinner spProdutos = (Spinner)findViewById(R.id.spProdutos);
SQLiteDatabase db = openOrCreateDatabase("vendas.db", Context.MODE_PRIVATE, null);

Cursor cursor = db.rawQuery("SELECT * FROM PRODUTOS ORDER BY nome ASC", null);

String[] from = {"_id", "nome", "preco"};
int[] to = {R.id.txvID, R.id.txvNome, R.id.txvPreco};

SimpleCursorAdapter ad = new SimpleCursorAdapter(getBaseContext(),R.layout.spinner, cursor, from, to);

spProdutos.setAdapter(ad);

db.close();
}



public void SalvarClick(View v){
//ação
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);

la = location.getLatitude();
lo = location.getLongitude();

SQLiteDatabase db = openOrCreateDatabase("vendas.db",Context.MODE_PRIVATE, null);

ContentValues ctv = new ContentValues();

Spinner spProdutos = (Spinner)findViewById(R.id.spProdutos);

SQLiteCursor dados = (SQLiteCursor) spProdutos.getAdapter().getItem(spProdutos.getSelectedItemPosition());

ctv.put("produto", dados.getInt(0));
ctv.put("preco", dados.getDouble(2));
ctv.put("la", la);
ctv.put("lo", lo);

if(db.insert("vendas", "_id", ctv) > 0){
Toast.makeText(getBaseContext(), "Sucesso ao Salvar", Toast.LENGTH_LONG).show();
}

}


@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 void onLocationChanged(Location location) {
// TODO Auto-generated method stub

}



@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub

}



@Override
public void onProviderEnabled(String arg0) {
// TODO Auto-generated method stub

}



@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub

}
}






ola rafael

o que aquele criteria faz ali???




Segundo a video aula é para trazer um tipo específico de provider... embora não faça isso segundo o vídeo é necessário ter a criteria....




Se eu comento essa parte de código ele salva normal.
parece que o location e o getlocation está retornando nulo. Alguém sabe me dizer porque?

LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);

la = location.getLatitude();
lo = location.getLongitude();

ctv.put("la", la);
ctv.put("lo", lo);



Obrigado.




Raphael

Veja a nova aula de GPS do curso de Android Online, lá é mostrado o porque disso.

Grande Abraço.