Personal I'm making an app that gets a user code and it's in hexadecimal. I convert it to decimal and insert a shared preference. So far so good.
At the time it will send the parameter to the other activity gives error:
03-18 17: 59: 47,071: E / AndroidRuntime (1983): FATAL EXCEPTION: main 03-18 17: 59: 47.071: E / AndroidRuntime (1983): java.lang.RuntimeException: Unable to start activity ComponentInfo {com.example.testener / com.example.testager.Telager): android.content.res.Resources $ NotFoundException: String resource ID # 0xa 03-18 17: 59: 47,071: E / AndroidRuntime (1983): at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2180) 03-18 17: 59: 47.071: E / AndroidRuntime (1983): at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2230) 03-18 17: 59: 47,071: E / AndroidRuntime (1983): at android.app.ActivityThread.access $ 600 (ActivityThread.java:141) 03-18 17: 59: 47,071: E / AndroidRuntime (1983): at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1234) 03-18 17: 59: 47.071: E / AndroidRuntime (1983): at android.os.Handler.dispatchMessage (Handler.java:99) 03-18 17: 59: 47.071: E / AndroidRuntime (1983): at android.os.Looper.loop (Looper.java:137) 03-18 17: 59: 47,071: E / AndroidRuntime (1983): at android.app.ActivityThread.main (ActivityThread.java:5039) 03-18 17: 59: 47.071: E / AndroidRuntime (1983): at java.lang.reflect.Method.invokeNative (Native Method) 03-18 17: 59: 47,071: E / AndroidRuntime (1983): at java.lang.reflect.Method.invoke (Method.java:511) 03-18 17: 59: 47,071: E / AndroidRuntime (1983): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:793) 03-18 17: 59: 47,071: E / AndroidRuntime (1983): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:560) 03-18 17: 59: 47.071: E / AndroidRuntime (1983): at dalvik.system.NativeStart.main (Native Method) 03-18 17: 59: 47.071: E / AndroidRuntime (1983): Caused by: android.content.res.Resources $ NotFoundException: String resource ID # 0xa 03-18 17: 59: 47.071: E / AndroidRuntime (1983): at android.content.res.Resources.getText (Resources.java:230) 03-18 17: 59: 47.071: E / AndroidRuntime (1983): at android.widget.Toast.makeText (Toast.java:265) 03-18 17: 59: 47,071: E / AndroidRuntime (1983): at com.example.testger.Telager.onCreate (Telagerador.java:28) 03-18 17: 59: 47,071: E / AndroidRuntime (1983): at android.app.Activity.performCreate (Activity.java:5104) 03-18 17: 59: 47.071: E / AndroidRuntime (1983): at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1080) 03-18 17: 59: 47.071: E / AndroidRuntime (1983): at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2144) 03-18 17: 59: 47.071: E / AndroidRuntime (1983): ... 11 more
And quit the application.
The part of the code that gives error is this, because when I leave this as a comment the app runs normally:
@Override
public void onResume () { //Verifica se o usuário é licenciado ou não
super.onResume();
//teste para ver se o sharedpreference codfinal nao esta nulo mas esta vazio ("")
int teste = cod_final.getInt("codfinal",0);
//verificacao de primeiro launcher
// if (sPreferences.getBoolean("firstRun", true)) {
//verificacao se o usuario digitou o codigo final se ele estiver null suponhamos que ele ainda nao validou a licenca pois nao digitou o codigo fornecido na ligacao
if(cod_final==null || teste==0){
//mensagem de não licenciado
final ProgressDialog ringProgressDialog = ProgressDialog.show(MainActivity.this, "Você não está licenciado!", "Processando sua licença ...", true);
ringProgressDialog.setCancelable(true);
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(10000);
} catch (Exception e) {
}
ringProgressDialog.dismiss();
}
}).start();
//captura o IMEI do dispositivo
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String IMEI = telephonyManager.getDeviceId().toString();
licenca.setText(IMEI);
//marca como false o sharedpreference: quer dizer que usuario esta licenciado
//sPreferences.edit().putBoolean("firstRun", false).apply();
Toast.makeText(getApplicationContext(), "codigo final NULO", Toast.LENGTH_LONG).show();
} /*Fim if(cod_final==null || teste==""){*/
else{/*se houver codigo final quer dizer que o usuario esta licenciado
entao abre a tela para gerar os codigos enviando o parametro que é o numero do cod_final
que aparecera para o usuario como licencas restantes*/
Toast.makeText(getApplicationContext(), "codigo final NAO nulo", Toast.LENGTH_LONG).show();
//pega o conteudo da sharedpreference e converte para string
int licencas_resto = cod_final.getInt("codfinal",0);
//aqui mostra o que realmente está no sharedpreference que no caso é um valor int ,
//que é o valor hex digitado pelo usuario convertido em decimal.
//Isso está numa outra parte do código, não coloquei aqui porque está funcionando normalmente.
Log.i("CODIGO FINAL", "o que esta inserido em cod final" + licencas_resto);
//abre tela de geração de códigos
Intent X = new Intent("tela_geralicencas");//chama a tela de geracao de codigo
X.addCategory("gerar");
Bundle params = new Bundle();
params.putInt("mensagem",licencas_resto);
//params.putString("mensagem", licencas_resto);
X.putExtras(params);
startActivity(X);
}/*Fim else*/
}/*Fim public void onResume () {*/'
Another Activity Code:
package com.example.testegerador;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class Telagerador extends Activity {
TextView tvResto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_telagerador);
tvResto=(TextView)findViewById(R.id.textView5);
//Recebe o parametro da outra tela que no caso e o numero do cod final
Intent intent = getIntent();
Bundle params = intent.getExtras();
if(params!=null)
{
//converte o valor recebido pelo parametro em string
int mostraTexto = params.getInt("mensagem");
Toast.makeText(getApplicationContext(), mostraTexto, Toast.LENGTH_LONG).show();
//insere no textView o valor de licenças restantes
tvResto.setText(mostraTexto);
}/*Fim if(params!=null)*/
}/*Fim OnCreate*/
}/*Fim public class Telagerador extends Activity {*/
Can anyone help me? The guys are right I do not know what happens.
Just remembering I'm a beginner in this area. Right away, thank you!