>
Boa tarde, estou fazendo uma aplicação Android básica, apenas de cadastro de Cod e Nome e salvar apenas na memoria (por enquanto), no Eclipse não da nenhum erro... porem quando vai abrir no Emulator da o seguinte erro: "Unfortunately CadastrosClientes has stopped"
package com.example.cadastroclientes;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Cadastro extends Activity {
Button btnCadastro, btnConsulta;
Registro objRegistro;
EditText edCod, edNome;
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.main); }
protected void onStart(Bundle savedInstanceState) {
setContentView(R.layout.main); }
protected void onResume(Bundle savedInstanceState) {
setContentView(R.layout.main);
btnCadastro = (Button) findViewById(R.id.btnCadastro);
btnConsulta = (Button) findViewById(R.id.btnConsulta);
Button btnGravar = (Button) findViewById(R.id.btnGravar);
btnCadastro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
chamaCadastro(); //chama a tela de cadastro ao clicar
}});
btnConsulta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chamaConsulta(); //chama a tela de consulta ao clicar
}});
btnGravar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
objRegistro = new Registro();
edCod = (EditText) findViewById(R.id.txtCodigo);
edNome = (EditText) findViewById(R.id.txtNome);
//Gravar Registros
objRegistro.Codigo = edCod.getText().toString();
objRegistro.Nome = edNome.getText().toString();
}
});
};
public void chamaCadastro() {
setContentView(R.layout.cadastro);
}
public void chamaConsulta() {
setContentView(R.layout.consulta);
TextView txtCod1 = (TextView) findViewById(R.id.txtCod1);
TextView txtNome1 = (TextView) findViewById(R.id.txtNome1);
txtCod1.setText(objRegistro.Codigo);
txtNome1.setText(objRegistro.Nome);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.cadastro, menu);
return true;
}
protected void onRestart(Bundle savedInstanceState) {
setContentView(R.layout.main);
}}
ola Diego
pq tu ta colocando o onStart e onResume ??
tira eles...
Vlw por responder, então cara... antes de eu colocar dava stopped do mesmo jeito kkk ja tirei e continua a mesma coisa... eu nem sei o que fazer mais afinal o codigo não deu nenhum erro aqui :/ alguma ideia ?
tenta fechar o oncreate la antes do metodo chamacadastro
Cara :/
Deu a mesma coisa fechando o onCreate antes do chamacadastro nada ainda... pior que nem sei o que olhar mais kk
Info util... esse aqui pe o meu LogCat encontra os seguintes erros:
01-29 19:07:31.992: E/AndroidRuntime(6444): FATAL EXCEPTION: main
01-29 19:07:31.992: E/AndroidRuntime(6444): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.cadastroclientes/com.example.cadastroclientes.Cadastro}: java.lang.NullPointerException
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1879)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread.access$600(ActivityThread.java:122)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.os.Handler.dispatchMessage(Handler.java:99)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.os.Looper.loop(Looper.java:137)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread.main(ActivityThread.java:4340)
01-29 19:07:31.992: E/AndroidRuntime(6444): at java.lang.reflect.Method.invokeNative(Native Method)
01-29 19:07:31.992: E/AndroidRuntime(6444): at java.lang.reflect.Method.invoke(Method.java:511)
01-29 19:07:31.992: E/AndroidRuntime(6444): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-29 19:07:31.992: E/AndroidRuntime(6444): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-29 19:07:31.992: E/AndroidRuntime(6444): at dalvik.system.NativeStart.main(Native Method)
01-29 19:07:31.992: E/AndroidRuntime(6444): Caused by: java.lang.NullPointerException
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.Activity.findViewById(Activity.java:1794)
01-29 19:07:31.992: E/AndroidRuntime(6444): at com.example.cadastroclientes.Cadastro.
01-29 19:07:31.992: E/AndroidRuntime(6444): at java.lang.Class.newInstanceImpl(Native Method)
01-29 19:07:31.992: E/AndroidRuntime(6444): at java.lang.Class.newInstance(Class.java:1319)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1870)
01-29 19:07:31.992: E/AndroidRuntime(6444): ... 11 more
mostre o seu codigo como ficou??
Bom dia, aqui vai o codigo do projeto... é basico mesmo sem sqlite no momento, preciso de uma ajuda para resolver isso porem não sei nem por onde começar :/
cadastro.java
//SÓ DEUS SABE COMO ISSO FUNCIONA
package com.example.cadastroclientes;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Cadastro extends Activity {
Button btnCadastro, btnConsulta;
Registro objRegistro;
EditText edCod, edNome;
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.main);
btnCadastro = (Button) findViewById(R.id.btnCadastro);
btnConsulta = (Button) findViewById(R.id.btnConsulta);
Button btnGravar = (Button) findViewById(R.id.btnGravar);
//Botão de Cadastro
btnCadastro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
chamaCadastro(); //chama a tela de cadastro ao clicar
}});
//Botão de Consulta
btnConsulta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chamaConsulta(); //chama a tela de consulta ao clicar
}});
btnGravar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
objRegistro = new Registro();
edCod = (EditText) findViewById(R.id.txtCodigo);
edNome = (EditText) findViewById(R.id.txtNome);
//Gravar Registros
objRegistro.Codigo = edCod.getText().toString();
objRegistro.Nome = edNome.getText().toString();
}
});
};
public void chamaCadastro() {
setContentView(R.layout.cadastro); //Metodo para Chamar a tela de cadastro
}
public void chamaConsulta() {
setContentView(R.layout.consulta); //Metodo para Chamar a tela de consulta
TextView txtCod1 = (TextView) findViewById(R.id.txtCod1);
TextView txtNome1 = (TextView) findViewById(R.id.txtNome1);
txtCod1.setText(objRegistro.Codigo);
txtNome1.setText(objRegistro.Nome);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.cadastro, menu);
return true;
}
}
package com.example.cadastroclientes;
public class Registro {
String Codigo, Nome;
}
cadastro.xml
[XML]
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtTeladeCadasto" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtCodigo" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:text="@string/edCod" android:inputType="text">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtNome" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:text="@string/edNome" android:inputType="text"/>
android:id="@ id/btnGravar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnGravar" />
[/XML]
main.xml
[XML]
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtTelaPincipal" />
android:id="@ id/btnCadastro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnCadastro" />
android:id="@ id/btnConsulta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnConsulta" />
[/XML]
consulta.xml
[XML]
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtTeladeConsulta" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtCod1" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtNome1" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
[/XML]
AndroidManifest.xml
[XML]
android:versionCode="1"
android:versionName="1.0" >
android:targetSdkVersion="10" />
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:label="@string/app_name" >
[/XML]
Perdão, os xml forão errados... vou corrigir!
cadastro.xml
[XML]
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtTeladeCadasto" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtCodigo" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:text="@string/edCod" android:inputType="text">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtNome" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:text="@string/edNome" android:inputType="text"/>
android:id="@ id/btnGravar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnGravar" />
[/XML]
main.xml
[XML]
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtTelaPincipal" />
android:id="@ id/btnCadastro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnCadastro" />
android:id="@ id/btnConsulta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnConsulta" />
[/XML]
consulta.xml
[XML]
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtTeladeConsulta" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtCod1" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtNome1" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
[/XML]
não vai todos os xml ...
Continua a mesma coisa??
Ainda a mesma coisa, fecha sozinha e aparece aquele erro na tela... Você viu o LogCat ?
01-29 19:07:31.992: E/AndroidRuntime(6444): FATAL EXCEPTION: main
01-29 19:07:31.992: E/AndroidRuntime(6444): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.cadastroclientes/com.example.cadastroclientes.Cadastro}: java.lang.NullPointerException
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1879)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread.access$600(ActivityThread.java:122)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.os.Handler.dispatchMessage(Handler.java:99)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.os.Looper.loop(Looper.java:137)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread.main(ActivityThread.java:4340)
01-29 19:07:31.992: E/AndroidRuntime(6444): at java.lang.reflect.Method.invokeNative(Native Method)
01-29 19:07:31.992: E/AndroidRuntime(6444): at java.lang.reflect.Method.invoke(Method.java:511)
01-29 19:07:31.992: E/AndroidRuntime(6444): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-29 19:07:31.992: E/AndroidRuntime(6444): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-29 19:07:31.992: E/AndroidRuntime(6444): at dalvik.system.NativeStart.main(Native Method)
01-29 19:07:31.992: E/AndroidRuntime(6444): Caused by: java.lang.NullPointerException
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.Activity.findViewById(Activity.java:1794)
01-29 19:07:31.992: E/AndroidRuntime(6444): at com.example.cadastroclientes.Cadastro.
01-29 19:07:31.992: E/AndroidRuntime(6444): at java.lang.Class.newInstanceImpl(Native Method)
01-29 19:07:31.992: E/AndroidRuntime(6444): at java.lang.Class.newInstance(Class.java:1319)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
01-29 19:07:31.992: E/AndroidRuntime(6444): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1870)
01-29 19:07:31.992: E/AndroidRuntime(6444): ... 11 more
Coloca la no comeco do onCreate public e nao protected...
E nao se esqueca d fazer antes d setcontentview o super.onCreate(savedInstanceState)
Assista o curso da rlsystem d android gratuito..
Cara eu ja vi... assisti os da rlsystem e o do neri, corrigi o OnCreate aqui, mesmo assim continua fechando igual antes! e sem nenhum erro...
Mostre o cadastro.java
cadastro.java
//SÓ DEUS SABE COMO ISSO FUNCIONA
package com.example.cadastroclientes;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Cadastro extends Activity {
Button btnCadastro, btnConsulta;
Registro objRegistro;
EditText edCod, edNome;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnCadastro = (Button) findViewById(R.id.btnCadastro);
btnConsulta = (Button) findViewById(R.id.btnConsulta);
Button btnGravar = (Button) findViewById(R.id.btnGravar);
//Botão de Cadastro
btnCadastro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
chamaCadastro(); //chama a tela de cadastro ao clicar
}});
//Botão de Consulta
btnConsulta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chamaConsulta(); //chama a tela de consulta ao clicar
}});
btnGravar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
objRegistro = new Registro();
edCod = (EditText) findViewById(R.id.txtCodigo);
edNome = (EditText) findViewById(R.id.txtNome);
//Gravar Registros
objRegistro.Codigo = edCod.getText().toString();
objRegistro.Nome = edNome.getText().toString();
}
});
};
public void chamaCadastro() {
setContentView(R.layout.cadastro); //Metodo para Chamar a tela de cadastro
}
public void chamaConsulta() {
setContentView(R.layout.consulta); //Metodo para Chamar a tela de consulta
TextView txtCod1 = (TextView) findViewById(R.id.txtCod1);
TextView txtNome1 = (TextView) findViewById(R.id.txtNome1);
txtCod1.setText(objRegistro.Codigo);
txtNome1.setText(objRegistro.Nome);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.cadastro, menu);
return true;
}
}
coloca ali em cima do onCreate .. @Override... como ta no onCreateOptionsMenu
e aqui nesse site explica como é q chama outra tela
http://guj.com.br/10294-qual-a-forma-correta-de-se-criar-2-telas
ola Diego
descullpa ai ..
nakela parte q eu falei q era public ao inves d proteceted... pode deixar la proteceted ...
foi mal .. :p
Boa tarde, em chamar tela ja está tudo certo ela tava chamando todas as telas corretamente, depois do botão gravar que começoua dar isso,...
POREM, vc disse p colocar public no lugar de protected coloquei dai vem com essa --' nao volta mais p protected da erro... no cadastro.java e no consulta.xml tbm depois que mudo e antes nem erro dava c até agora nada!! não eh possivel q isso n seja possivel resolver
e o @Override não resolveu tbm ;/ mais algo?
ola diego
mostre como é q ficou cadastro.java
Com o protected da erro então deixei somente o class e com o @Override da erro tbm por isso tirei...
//SÓ DEUS SABE COMO ISSO FUNCIONA
package com.example.cadastroclientes;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
class Cadastro extends Activity {
Button btnCadastro, btnConsulta;
Registro objRegistro;
EditText edCod, edNome;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnCadastro = (Button) findViewById(R.id.btnCadastro);
btnConsulta = (Button) findViewById(R.id.btnConsulta);
Button btnGravar = (Button) findViewById(R.id.btnGravar);
//Botão de Cadastro
btnCadastro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
chamaCadastro(); //chama a tela de cadastro ao clicar
}});
//Botão de Consulta
btnConsulta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chamaConsulta(); //chama a tela de consulta ao clicar
}});
btnGravar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
objRegistro = new Registro();
edCod = (EditText) findViewById(R.id.txtCodigo);
edNome = (EditText) findViewById(R.id.txtNome);
//Gravar Registros
objRegistro.Codigo = edCod.getText().toString();
objRegistro.Nome = edNome.getText().toString();
}
});
};
public void chamaCadastro() {
setContentView(R.layout.cadastro); //Metodo para Chamar a tela de cadastro
}
public void chamaConsulta() {
setContentView(R.layout.consulta); //Metodo para Chamar a tela de consulta
TextView txtCod1 = (TextView) findViewById(R.id.txtCod1);
TextView txtNome1 = (TextView) findViewById(R.id.txtNome1);
txtCod1.setText(objRegistro.Codigo);
txtNome1.setText(objRegistro.Nome);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.cadastro, menu);
return true;
}
}
kd o @Override em cima do onCreate e num se eskeca de colocar protected ao inves de public.........
eu ja disse ali em cima... @Override só me faz aparecer mais erros, do jeito q ta n da erro nenhum! quando eu tirei o protected pra por o public foi deboa, mas quando coloquei de volta o protected ele n deixa --'
entao, vc vai fazer o seguinte
vai criar um novo projeto Android
e copie so essa parte
Button btnCadastro, btnConsulta;
Registro objRegistro;
EditText edCod, edNome;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnCadastro = (Button) findViewById(R.id.btnCadastro);
btnConsulta = (Button) findViewById(R.id.btnConsulta);
Button btnGravar = (Button) findViewById(R.id.btnGravar);
//Botão de Cadastro
btnCadastro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
chamaCadastro(); //chama a tela de cadastro ao clicar
}});
//Botão de Consulta
btnConsulta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chamaConsulta(); //chama a tela de consulta ao clicar
}});
btnGravar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
objRegistro = new Registro();
edCod = (EditText) findViewById(R.id.txtCodigo);
edNome = (EditText) findViewById(R.id.txtNome);
//Gravar Registros
objRegistro.Codigo = edCod.getText().toString();
objRegistro.Nome = edNome.getText().toString();
}
});
};
public void chamaCadastro() {
setContentView(R.layout.cadastro); //Metodo para Chamar a tela de cadastro
}
public void chamaConsulta() {
setContentView(R.layout.consulta); //Metodo para Chamar a tela de consulta
TextView txtCod1 = (TextView) findViewById(R.id.txtCod1);
TextView txtNome1 = (TextView) findViewById(R.id.txtNome1);
txtCod1.setText(objRegistro.Codigo);
txtNome1.setText(objRegistro.Nome);
}
e naum se eskeca d copiar xml tbm
e naum se eskeca de colocar o @Override em cima do onCreate