>

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.



Erro curso android


Pessoal, comecei faz pouco tempo no curso de android avançado, estou na primeira aula, e logo ao tentar criar o evento para clickar no botão "Nova Venda" tenho um erro de Null Pointer Exception e a aplicação se encerra sozinha.
Estou com a ultima versão do ADT e usando a API 14 do android 4.0 para compilar, já revi essa parte do vídeo várias vezes e até agora estou no mesmo lugar, não consigo encontrar o erro. Nas xml noto uma diferença em relação ao vídeo, pois é criado uma fragment_main.xml e uma activity_main.xml, não entendi mas o eclipse me joga sempre na cara a fragment_main, como se ela fosse a xml principal e sempre pega informações desse arquivo xml, isso é correto? ou alguma espécie de bug?

Obrigado.



4 Respostas


Segue o MainActivity.java


package com.example.vendas2;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
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;
import android.os.Build;

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_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(100), ");
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));");
db.execSQL(sqlVendas.toString());

db.close();


if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}

public void NovaVenda_Click(View v){
startActivity(new Intent(getBaseContext() ,NovaVendaActivity.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.fragment_main, container,
false);
return rootView;
}
}

}




e o fragment_main.xml
Não consegui incorporar os dois no primeiro post, dava erro.

[XML]
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.vendas2.MainActivity$PlaceholderFragment" >

android:id="@ id/btnNovaVenda"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:onClick="NovaVenda_Click"
android:text="Nova Venda" />

android:id="@ id/btnListarVendas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@ id/btnNovaVenda"
android:layout_alignRight="@ id/btnNovaVenda"
android:layout_below="@ id/btnNovaVenda"
android:text="Listar Vendas" />

android:id="@ id/btnSair"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@ id/btnListarVendas"
android:layout_alignRight="@ id/btnListarVendas"
android:layout_below="@ id/btnListarVendas"
android:text="Sair" />



[/XML]




[XML]
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.vendas2.MainActivity$PlaceholderFragment" >

android:id="@ id/btnNovaVenda"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:onClick="NovaVenda_Click"
android:text="Nova Venda" />

android:id="@ id/btnListarVendas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@ id/btnNovaVenda"
android:layout_alignRight="@ id/btnNovaVenda"
android:layout_below="@ id/btnNovaVenda"
android:text="Listar Vendas" />

android:id="@ id/btnSair"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@ id/btnListarVendas"
android:layout_alignRight="@ id/btnListarVendas"
android:layout_below="@ id/btnListarVendas"
android:text="Sair" />


[/XML]




Resolvido.

era na hora de copiar os dados para transformar a classe NovaVendaActivity em uma activity