Stack Overflow en español Asked by vmporcayom on August 27, 2021
Tengo un proyecto en el cual lee si es la primera vez que se inicia la aplicación, lo hago por medio de sharedpreference:
Main:
//Primer inicio
boolean muestra = getValuePreferencePrimerInicio(getApplicationContext());
if (muestra) {
saveValuePreferencePrimerInicio(getApplicationContext(), false);
setPreferenceInt(getApplicationContext(),6,"puntos");
}
Método getValuePreferencePrimerInicio
:
public boolean getValuePreferencePrimerInicio(Context context) {
SharedPreferences preferences = context.getSharedPreferences(PREFS_KEY, MODE_PRIVATE);
return preferences.getBoolean("primerInicio", true);
}
Método saveValuePreferencePrimerInicio
:
public void saveValuePreferencePrimerInicio(Context context, Boolean mostrar) {
SharedPreferences settings = context.getSharedPreferences(PREFS_KEY, MODE_PRIVATE);
SharedPreferences.Editor editor;
editor = settings.edit();
editor.putBoolean("primerInicio", mostrar);
editor.commit();
}
Lo hago para poder agregar "puntos" al usuario por el primer inicio, pero es como si no se ejecutara y no lo hace, o como si se quedaran datos de haberla tenido instalada antes, la desinstalo y la vuelve a instalar por medio del debug. Funcionaba perfectamente como está, pero en algún momento dejó de hacerlo y en el run me aparece esto:
07/16 09:34:01: Launching 'app' on HUAWEI MAR-LX3A.
Connected to process 11939 on device 'huawei-mar_lx3a-A4N4C19813000332'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=com.example.parlerfrench#10323#256
I/HwApiCacheMangerEx: apicache path=/storage/0403-0201 state=mounted key=com.example.parlerfrench#10323#256
I/le.parlerfrenc: QarthPatchMonintor::Init
QarthPatchMonintor::StartWatch
QarthPatchMonintor::WatchPackage: /data/hotpatch/fwkhotpatch/
QarthPatchMonintor::CheckAndWatchPatch: /data/hotpatch/fwkhotpatch/com.example.parlerfrench
I/le.parlerfrenc: QarthPatchMonintor::CheckAndWatchPatch: /data/hotpatch/fwkhotpatch/all
QarthPatchMonintor::Run
I/HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=com.example.parlerfrench#10323#0
apicache path=/storage/0403-0201 state=mounted key=com.example.parlerfrench#10323#0
I/le.parlerfrenc: QarthPatchMonintor::Reading
QarthPatchMonintor::CheckNotifyEvent
QarthPatchMonintor::CheckNotifyEvent before read
I/AwareBitmapCacher: init processName:com.example.parlerfrench pid=11939 uid=10323
E/AwareLog: AtomicFileUtils: readFileLines file not exist: android.util.AtomicFile@814a5db
E/AwareLog: AtomicFileUtils: readFileLines file not exist: android.util.AtomicFile@db58878
I/Process: Sending signal. PID: 11939 SIG: 9
$ adb shell am start -n "com.example.parlerfrench/com.example.parlerfrench.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 12010 on device 'huawei-mar_lx3a-A4N4C19813000332'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/le.parlerfrenc: QarthPatchMonintor::Init
QarthPatchMonintor::StartWatch
QarthPatchMonintor::WatchPackage: /data/hotpatch/fwkhotpatch/
QarthPatchMonintor::CheckAndWatchPatch: /data/hotpatch/fwkhotpatch/com.example.parlerfrench
QarthPatchMonintor::CheckAndWatchPatch: /data/hotpatch/fwkhotpatch/all
QarthPatchMonintor::Run
I/le.parlerfrenc: QarthPatchMonintor::Reading
QarthPatchMonintor::CheckNotifyEvent
QarthPatchMonintor::CheckNotifyEvent before read
I/HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=com.example.parlerfrench#10323#256
apicache path=/storage/0403-0201 state=mounted key=com.example.parlerfrench#10323#256
I/HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=com.example.parlerfrench#10323#0
apicache path=/storage/0403-0201 state=mounted key=com.example.parlerfrench#10323#0
I/AwareBitmapCacher: init processName:com.example.parlerfrench pid=12010 uid=10323
W/AwareLog: AwareAppScheduleManager: system version has changed
D/AwareAppScheduleManager: webViewOpt, system or app version update, clearData
D/HwFrameworkSecurityPartsFactory: HwFrameworkSecurityPartsFactory in.
I/HwFrameworkSecurityPartsFactory: add HwFrameworkSecurityPartsFactory to memory.
W/DynamiteModule: Local module descriptor class for com.google.android.gms.measurement.dynamite not found.
W/le.parlerfrenc: Unsupported class loader
V/ActivityThread: callActivityOnCreate
I/DynamiteModule: Considering local module com.google.android.gms.ads.dynamite:0 and remote module com.google.android.gms.ads.dynamite:21800
Selected remote version of com.google.android.gms.ads.dynamite, version >= 21800
V/DynamiteModule: Dynamite loader version >= 2, using loadModule2NoCrashUtils
I/DynamiteModule: Considering local module com.google.android.gms.measurement.dynamite:0 and remote module com.google.android.gms.measurement.dynamite:15
Selected remote version of com.google.android.gms.measurement.dynamite, version >= 15
V/DynamiteModule: Dynamite loader version >= 2, using loadModule2NoCrashUtils
V/HwWidgetFactory: : successes to get AllImpl object and return....
I/DynamiteLoaderV2: [71] AdsFdrDynamite.integ
W/le.parlerfrenc: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
W/le.parlerfrenc: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
I/DynamiteLoaderV2: [71] Measurementdynamite
W/le.parlerfrenc: ClassLoaderContext type mismatch. expected=PCL, found=DLC (PCL[] | DLC[];PCL[/data/app/com.example.parlerfrench-EYMYgchiFQA_Dl4QJgOtwg==/base.apk*1978371040:/data/app/com.example.parlerfrench-EYMYgchiFQA_Dl4QJgOtwg==/base.apk!classes2.dex*3844201848])
Found duplicate classes, falling back to extracting from APK : /data/user_de/0/com.google.android.gms/app_chimera/m/000000cd/MeasurementDynamite.apk
NOTE: This wastes RAM and hurts startup performance.
Found duplicated class when checking oat files: 'Landroid/support/v4/media/MediaBrowserCompat$CustomActionResultReceiver;' in /data/user_de/0/com.google.android.gms/app_chimera/m/000000cd/MeasurementDynamite.apk and /data/app/com.example.parlerfrench-EYMYgchiFQA_Dl4QJgOtwg==/base.apk
I/OverScrollerOptimization: start init SmartSlideOverScroller and get the overscroller config
get the overscroller config
W/DynamiteModule: Local module descriptor class for com.google.android.gms.measurement.dynamite not found.
D/ActivityThread: add activity client record, r= ActivityRecord{e1aefd9 token=android.os.BinderProxy@db58878 {com.example.parlerfrench/com.example.parlerfrench.MainActivity}} token= android.os.BinderProxy@db58878
D/ConnectivityManager: requestNetwork and the calling app is: com.example.parlerfrench
I/FA-Ads: App measurement initialized, version: 29013
To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
D/HiTouch_PressGestureDetector: onAttached, package=com.example.parlerfrench, windowType=1, mHiTouchRestricted=false
I/FA-Ads: Tag Manager is not found and thus will not be used
D/NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
I/iGraphics: [0020080c] pn: com.example.parlerfrench, p: 12010
[0030080c] no spt app: com.example.parlerfrench
D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
W/le.parlerfrenc: Accessing hidden field Landroid/view/View;->mAccessibilityDelegate:Landroid/view/View$AccessibilityDelegate; (greylist, reflection, allowed)
E/RecyclerView: No adapter attached; skipping layout
W/Gralloc3: mapper 3.x is not supported
E/: APS:IFLoad:importExternalFunctions, search function createNewHwApsUtils failed, dlsym err:undefined symbol: createNewHwApsUtils
D/: APS:importExternalFunctions OK
I/OpenGLRenderer: Davey! duration=707ms; Flags=1, IntendedVsync=9376348017918, Vsync=9376348017918, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=9376349180339, AnimationStart=9376349288151, PerformTraversalsStart=9376349291797, DrawStart=9376853891797, SyncQueued=9376878685026, SyncStart=9376879026172, IssueDrawCommandsStart=9376880606901, SwapBuffers=9377049970964, FrameCompleted=9377056244401, DequeueBufferDuration=146000, QueueBufferDuration=1573000,
I/Choreographer: Skipped 43 frames! The application may be doing too much work on its main thread.
I/HwViewRootImpl: removeInvalidNode jank list is null
I/OpenGLRenderer: Davey! duration=745ms; Flags=0, IntendedVsync=9376364645563, Vsync=9377081312201, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=9377094456380, AnimationStart=9377094582943, PerformTraversalsStart=9377095088151, DrawStart=9377100813151, SyncQueued=9377104319401, SyncStart=9377104572005, IssueDrawCommandsStart=9377104755860, SwapBuffers=9377108994401, FrameCompleted=9377110543880, DequeueBufferDuration=89000, QueueBufferDuration=792000,
D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
W/System: A resource failed to call close.
W/libEGL: EGLNativeWindowType 0x767efbfa90 disconnect failed
D/AwareBitmapCacher: handleInit switch not opened pid=12010
W/ConnectionTracker: Exception thrown while unbinding
java.lang.IllegalArgumentException: Service not registered: lt@38fb84f
at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1832)
at android.app.ContextImpl.unbindService(ContextImpl.java:1880)
at android.content.ContextWrapper.unbindService(ContextWrapper.java:741)
at cg.b(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (120408-0):1)
at cg.a(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (120408-0):6)
at lu.A(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (120408-0):10)
at lf.a(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (120408-0):3)
at dz.run(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (120408-0):3)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at ja.run(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (120408-0):6)
Ojalá alguien pueda apoyarme, gracias.
Anexo toda mi clase main:
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
private ViewPager viewPager;
private TabLayout tabLayout;
private static MainActivity activity_main;
private String PREFS_KEY = "mispreferencias";
private fragment_fav fragment_fav;
private fragment_estadisticas fragment_estadisticas;
private fragment_home fragment_home;
private ArrayList<Texto> arrayTextos;
private String URL_TEXTOS = "";
private NetworkConnection networkConnection;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String ip = getString(R.string.ip);
URL_TEXTOS=ip + "????";
activity_main = this;
//Modo oscuro
String modo = getPreferenceString(getApplicationContext(), "dm");
if (modo.equals("No existe") || modo.equals("sistema")) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
} else {
if (modo.equals("oscuro")) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
} else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}
}
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
viewPager = findViewById(R.id.view_pager);
tabLayout = findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
fragment_fav = new fragment_fav();
fragment_estadisticas = new fragment_estadisticas();
fragment_home = new fragment_home();
ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(), 0);
viewPagerAdapter.addFragment(fragment_estadisticas, getResources().getString(R.string.titulo_stats));
viewPagerAdapter.addFragment(fragment_home, getResources().getString(R.string.titulo_home));
viewPagerAdapter.addFragment(fragment_fav, getResources().getString(R.string.titulo_fav));
viewPager.setAdapter(viewPagerAdapter);
tabLayout.getTabAt(0).setIcon(R.drawable.ic_outline_bar_chart);
tabLayout.getTabAt(1).setIcon(R.drawable.ic_outline_voice);
tabLayout.getTabAt(2).setIcon(R.drawable.ic_outline_favorite_border);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
//Tab de home seleccionada
tabLayout.selectTab(tabLayout.getTabAt(1));
//Inicia Check internet
networkConnection=new NetworkConnection(getApplicationContext());
networkConnection.observe(this, new Observer<Boolean>() {
@Override
public void onChanged(Boolean aBoolean) {
//Si no hay conexión
if(!aBoolean){
Intent i=new Intent(getApplicationContext(), Activity_Noconnection.class);
startActivity(i);
}
}
});
//Primer inicio
boolean muestra = getValuePreferencePrimerInicio(getApplicationContext());
if (muestra) {
//Quiero agregar sólo 6 puntos en el primer inicio
saveValuePreferencePrimerInicio(getApplicationContext(), false);
setPreferenceInt(getApplicationContext(),6,"puntos");
}
}
public void setBadge(int tabIndex, int num) {
BadgeDrawable badgeDrawable = tabLayout.getTabAt(tabIndex).getOrCreateBadge();
//Pone un número si lleva uno diferente a 0
if (num != 0)
badgeDrawable.setNumber(num);
badgeDrawable.setVisible(true);
}
private class ViewPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments = new ArrayList<>();
private List<String> fragmentsTitle = new ArrayList<>();
public ViewPagerAdapter(@NonNull FragmentManager fm, int behavior) {
super(fm, behavior);
}
public void addFragment(Fragment fragment, String title) {
fragments.add(fragment);
fragmentsTitle.add(title);
}
@NonNull
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return fragmentsTitle.get(position);
}
}
public String getPreferenceString(Context context, String nombre) {
SharedPreferences preferences = context.getSharedPreferences(PREFS_KEY, MODE_PRIVATE);
String dato = preferences.getString(nombre, "No existe");
return dato;
}
public void setPreferenceString(Context context, String dato, String nombre) {
SharedPreferences settings = context.getSharedPreferences(PREFS_KEY, MODE_PRIVATE);
SharedPreferences.Editor editor;
editor = settings.edit();
editor.putString(nombre, dato);
editor.commit();
}
public boolean getValuePreferencePrimerInicio(Context context) {
SharedPreferences preferences = context.getSharedPreferences(PREFS_KEY, MODE_PRIVATE);
return preferences.getBoolean("primerInicio", true);
}
public void saveValuePreferencePrimerInicio(Context context, Boolean mostrar) {
SharedPreferences settings = context.getSharedPreferences(PREFS_KEY, MODE_PRIVATE);
SharedPreferences.Editor editor;
editor = settings.edit();
editor.putBoolean("primerInicio", mostrar);
editor.commit();
}
public int getPreferenceInt(Context context, String nombre) {
SharedPreferences preferences = context.getSharedPreferences(PREFS_KEY, MODE_PRIVATE);
return preferences.getInt(nombre, 0);
}
public void setPreferenceInt(Context context, Integer numero, String nombre) {
SharedPreferences settings = context.getSharedPreferences(PREFS_KEY, MODE_PRIVATE);
SharedPreferences.Editor editor;
editor = settings.edit();
editor.putInt(nombre, numero);
editor.commit();
}
public void guardarPreferenceUltimaFechaRecompensa(String fechaRecompensa) {
SharedPreferences preferences = getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("fechaRecompensa", fechaRecompensa);
editor.commit();
}
public String leerPreferenceUltimaFechaRecompensa() {
SharedPreferences preferences = getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE);
String ultimaFecha = preferences.getString("fechaRecompensa", "No existe");
return ultimaFecha;
}
public void guardarPreferenceUltimaFechaWha(String fechaRecompensa) {
SharedPreferences preferences = getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("fechaWha", fechaRecompensa);
editor.commit();
}
public String leerPreferenceUltimaFechaWha() {
SharedPreferences preferences = getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE);
String ultimaFecha = preferences.getString("fechaWha", "No existe");
return ultimaFecha;
}
public void guardarPreferenceUltimaFechaFB(String fechaRecompensa) {
SharedPreferences preferences = getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("fechaFB", fechaRecompensa);
editor.commit();
}
public String leerPreferenceUltimaFechaFB() {
SharedPreferences preferences = getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE);
String ultimaFecha = preferences.getString("fechaFB", "No existe");
return ultimaFecha;
}
public void guardarPreferenceUltimaFechaTwi(String fechaRecompensa) {
SharedPreferences preferences = getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("fechaTwi", fechaRecompensa);
editor.commit();
}
public String leerPreferenceUltimaFechaTwi() {
SharedPreferences preferences = getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE);
String ultimaFecha = preferences.getString("fechaTwi", "No existe");
return ultimaFecha;
}
public ArrayList cargarTextos() {
fragment_home.playLoading();
arrayTextos=new ArrayList<>();
URL_TEXTOS="?????";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, URL_TEXTOS, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject jsonObject = response;
JSONArray jsonArray = jsonObject.getJSONArray("textos");
for (int i=0;i<jsonArray.length();i++){
JSONObject object=jsonArray.getJSONObject(i);
Texto texto=new Texto(object.getInt("id"),object.getString("texto"),
object.getString("autor"),object.getString("origen"), object.getString("nivel"));
arrayTextos.add(texto);
}
} catch (JSONException e) {
fragment_home.getRefresh().setVisibility(View.VISIBLE);
fragment_home.stopLoading();
e.printStackTrace();
Log.e("error", "error trycatch: "+response.toString());
Toast.makeText(MainActivity.this, "Error! ", Toast.LENGTH_LONG).show();
}
//Se refresca el fragment home
fragment_home.onResume();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
fragment_home.getRefresh().setVisibility(View.VISIBLE);
fragment_home.stopLoading();
if (error instanceof NetworkError) {
Log.e("ErrorConexion", "Connection Error: " + error.toString());
Toast.makeText(MainActivity.this, getResources().getString(R.string.nointernet), Toast.LENGTH_LONG).show();
} else{
Toast.makeText(MainActivity.this, "Error! ", Toast.LENGTH_LONG).show();
Log.e("errorResponse", error.toString());
}
}
});
jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
VolleySingleton.getInstanceVolley(getApplicationContext()).addToRequestQueue(jsonObjectRequest);
fragment_home.onResume();
return arrayTextos;
}
public static MainActivity getmInstanceActivity() {
return activity_main;
}
public ArrayList<Texto> getArrayTextos(){
return arrayTextos;
}
public TabLayout getTabLayout() {
return tabLayout;
}
public void comparaCadenas(String original, String speech){
String[] palabrasOriginal, palabrasSpeech;
//Se separan las palabras por cada espacio
palabrasOriginal=original.split("[ ]");
palabrasSpeech=speech.split("[ ]");
//Se quitan los puntos, comas y puntosycomas en cada palabra
String palabra;
for (int i=0;i<palabrasOriginal.length;i++){
palabra=palabrasOriginal[i].replaceAll("[\.|\;\,]","");
palabrasOriginal[i]=palabra;
}
for (int i=0;i<palabrasSpeech.length;i++){
palabra=palabrasSpeech[i].replaceAll("[\.|\;\,]","");
palabrasSpeech[i]=palabra;
}
}
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.ajustes:
Intent i =new Intent(getApplicationContext(),Activity_Ajustes.class);
startActivity(i);
break;
}
return true;
}
public void registrarFav(int id) {
AdminBD admin = new AdminBD(this, "textosFav", null, 1);
SQLiteDatabase BaseDatos= admin.getWritableDatabase();
Cursor existeTexto = BaseDatos.rawQuery("SELECT * FROM textosFav WHERE id=" + id, null);
if (!existeTexto.moveToFirst()) {
ContentValues insertar=new ContentValues();
insertar.put("id",id);
BaseDatos.insert("textosFav",null, insertar);
}
BaseDatos.close();
fragment_fav.recargar();
}
public ArrayList<Integer> devuelveFavs() {
ArrayList<Integer> salida = new ArrayList<>();
AdminBD admin = new AdminBD(getApplicationContext(), "textosFav", null, 1);
SQLiteDatabase BaseDatos = admin.getReadableDatabase();
Cursor textosFavs = BaseDatos.rawQuery("SELECT * FROM textosFav", null);
textosFavs.moveToFirst();
while (!textosFavs.isAfterLast()) {
salida.add(textosFavs.getInt(textosFavs.getColumnIndex("id")));
textosFavs.moveToNext();
}
BaseDatos.close();
return salida;
}
public boolean isFav(int id){
AdminBD admin = new AdminBD(getApplicationContext(), "textosFav", null, 1);
SQLiteDatabase BaseDatos = admin.getReadableDatabase();
Cursor textosFavs = BaseDatos.rawQuery("SELECT * FROM textosFav WHERE id="+id, null);
if (textosFavs.getCount()>0) {
BaseDatos.close();
return true;
}else{
BaseDatos.close();
return false;
}
}
public void quitarFav(int id){
AdminBD admin = new AdminBD(this, "textosFav", null, 1);
SQLiteDatabase BaseDatos= admin.getWritableDatabase();
Cursor existeTexto = BaseDatos.rawQuery("SELECT * FROM textosFav WHERE id=" +id, null);
if (existeTexto.moveToFirst()) {
BaseDatos.delete("textosFav","id="+id,null);
}
BaseDatos.close();
fragment_fav.recargar();
}
}
Cabe mencionar que funcionó cuando eliminé todos los datos de la aplicación y la volví a abrir.
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP