Android 片段在Firebase中保存数据时重新启动
每次我将数据从片段发送到Firebase时,都会出现以下问题:Android 片段在Firebase中保存数据时重新启动,android,android-fragments,firebase,firebase-realtime-database,firebase-authentication,Android,Android Fragments,Firebase,Firebase Realtime Database,Firebase Authentication,每次我将数据从片段发送到Firebase时,都会出现以下问题: 06-28 12:51:36.475 1224-1224/com.example.fernandosilveira.findpromotion I/LOG: ActivityCreate 06-28 12:51:36.475 1224-1224/com.example.fernandosilveira.findpromotion I/LOG: onstart 06-28 12:51:36.475 1224-1224/com.exam
06-28 12:51:36.475 1224-1224/com.example.fernandosilveira.findpromotion I/LOG: ActivityCreate
06-28 12:51:36.475 1224-1224/com.example.fernandosilveira.findpromotion I/LOG: onstart
06-28 12:51:36.475 1224-1224/com.example.fernandosilveira.findpromotion I/LOG: onresume
06-28 12:51:39.071 1224-1449/com.example.fernandosilveira.findpromotion D/FA: Logging event (FE): _s, Bundle[{_o=auto, _sc=PainelControle, _si=3714539327545697095}]
06-28 12:51:44.884 1224-1449/com.example.fernandosilveira.findpromotion D/FA: Logging event (FE): _e, Bundle[{_o=auto, _et=8535, _sc=PainelControle, _si=3714539327545697095}]
06-28 12:51:45.020 1224-1224/com.example.fernandosilveira.findpromotion I/LOG: ActivityCreate
06-28 12:51:45.020 1224-1224/com.example.fernandosilveira.findpromotion I/LOG: onstart
06-28 12:51:45.020 1224-1224/com.example.fernandosilveira.findpromotion I/LOG: onresume
06-28 12:51:45.319 1224-1224/com.example.fernandosilveira.findpromotion I/LOG: onStop
单击这些开关时:
它更新片段并转到初始片段
这是我正在使用的类
苏亚里奥类
调用片段的主类
向Firebase发送数据时发生此片段更新错误的类
package com.example.fernandosilveira.findpromotion.Fragment;
导入android.content.Intent;
导入android.os.Bundle;
导入android.support.annotation.Nullable;
导入android.support.v4.app.Fragment;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AbsListView;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.CheckedTextView;
导入android.widget.CompoundButton;
导入android.widget.ListView;
导入android.widget.ProgressBar;
导入android.widget.Switch;
导入com.example.fernandosilveira.findpromotion.Model.CategoriaProd;
导入com.example.fernandosilveira.findpromotion.Model.Usuario;
导入com.example.fernandosilveira.findpromotion.R;
导入com.google.firebase.auth.FirebaseAuth;
导入com.google.firebase.auth.FirebaseUser;
导入com.google.firebase.database.ChildEventListener;
导入com.google.firebase.database.DataSnapshot;
导入com.google.firebase.database.DatabaseError;
导入com.google.firebase.database.DatabaseReference;
导入com.google.firebase.database.FirebaseDatabase;
导入com.google.firebase.database.ValueEventListener;
导入java.lang.reflect.Array;
导入java.util.ArrayList;
导入java.util.array;
/**
*一个简单的{@link Fragment}子类。
*/
公共类DestaquesFragment扩展了片段{
私人用膳用膳;
专用阵列适配器阵列适配器;
私有列表视图列表视图;
私人分类;
private ArrayList addDestaques=new ArrayList();
私有FirebaseDatabase=FirebaseDatabase.getInstance();
private DatabaseReference=database.getReference();
私有字符串meuUid;
private ArrayList list=new ArrayList();
私人交换机stGames、Stbrinkedos、Stcoleconovéis、stEsporteeLazer、stArteeAntiguidade、stInstrumentosMusicais、stFotografia、stAssinaturaseRevistas、stArtigosReligiosos;
专用交换机stBebesCia、stCasaDecoracao、STCONSTRUCAOFERAMENTAS、STELTRODOMESTICOS、STETSHOP、STIVROS、STCD、STDVD、STBLUE、stFilmeDigital、stHDDVD、STDISCSVINIL、stMusicaDigital、stVHS、stFitasK7Gravadas;
专用交换机Stmodaacessorios、stPerfumariaCosmeticos、stSaude、stJoiasRelogios、stSexShop、stAlimentosBebidas、stIndustriaComercioNegocios、Stutomoveisviculos、stInformatica、stEletronicos、stTelefonia;
私有字符串Teste=“”;
私有ValueEventListener ValueEventListener;
私有ChildEventListener ChildEventListener;
公共DestaquesFragment(){
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
最终视图根视图=充气机。充气(R.layout.fragment\u destaques,container,false);
if(rootview!=null){
stGames=(Switch)rootview.findviewbyd(R.id.swtGames);
stbrinkedos=(开关)rootview.findviewbyd(R.id.swtbrinkedos);
stcoleconavéis=(Switch)rootview.findviewbyd(R.id.swtcelectionavis);
stEsporteeLazer=(开关)rootview.findviewbyd(R.id.swtesportelazer);
stArteeAntiguidade=(开关)rootview.findviewbyd(R.id.swtArteeAntiguidade);
stInstrumentosMusicais=(开关)rootview.findviewbyd(R.id.swtInstrumentosMusicais);
stFotografia=(开关)rootview.findviewbyd(R.id.swtFotografia);
statssinaturaserevistas=(Switch)rootview.findViewById(R.id.swtassinnaturaserevistas);
startigosrigiosos=(Switch)rootview.findviewbyd(R.id.swtArtigosReligiosos);
stBebesCia=(Switch)rootview.findviewbyd(R.id.swtBebeseCia);
stCasaDecoracao=(开关)rootview.findviewbyd(R.id.swtCasaeDecoracao);
stconstrucaoferrantas=(开关)rootview.findviewbyd(R.id.swtconstrucaoeferrrantas);
stEletrodomesticos=(开关)rootview.findviewbyd(R.id.swtEletrodomesticos);
stPetShop=(Switch)rootview.findviewbyd(R.id.swtPetShop);
stLivros=(开关)rootview.findviewbyd(R.id.swtLivros);
stCDs=(Switch)rootview.findviewbyd(R.id.swtCDs);
stDVDs=(开关)rootview.findviewbyd(R.id.swtDVDs);
stBluRay=(开关)rootview.findviewbyd(R.id.swtBluRay);
stFilmeDigital=(开关)rootview.findviewbyd(R.id.swtFilmeDigital);
stHDDVD=(开关)rootview.findviewbyd(R.id.swtHDDVD);
stDiscosVinil=(开关)rootview.findviewbyd(R.id.swtDiscosdeVinil);
stMusicaDigital=(开关)rootview.findviewbyd(R.id.swtMusicaDigital);
stVHS=(开关)rootview.findviewbyd(R.id.swtVHS);
stFitasK7Gravadas=(开关)rootview.findviewbyd(R.id.swtFitasK7Gravadas);
stmodaecessorios=(开关)rootview.findviewbyd(R.id.swtmodaecessorios);
stPerfumariaCosmeticos=(开关)rootview.findviewbyd(R.id.swtPerfumariaeCosmeticos);
stSaude=(Switch)rootview.findviewbyd(R.id.swtSaude);
stJoiasRelogios=(Switch)rootview.findviewbyd(R.id.swtjoiasrelogios);
stSexShop=(Switch)rootview.findviewbyd(R.id.swtSexShop);
stalimentosebbidas=(开关)rootview.findviewbyd(R.id.swtalimentosebbidas);
stIndustriaComercioNegocios=(Switch)rootview.findViewById(R.id.swtinustriacomercionegocios);
statomoveisveculos=(开关)rootview.findviewbyd(R.id.swtAutom
package com.example.fernandosilveira.findpromotion.Adapter;
/**
* Created by Fernando Silveira on 08/03/2017.
*/
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import com.example.fernandosilveira.findpromotion.Fragment.DestaquesFragment;
import com.example.fernandosilveira.findpromotion.Fragment.HistoricoFragment;
import com.example.fernandosilveira.findpromotion.Fragment.ProximosVoceFragment;
public class TabAdapterUsuario extends FragmentStatePagerAdapter {
private String[] tituloAbas = {"Próximo a Você","Destaques", "Histórico"};
public TabAdapterUsuario(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position)
{
Fragment fragment = null;
switch (position)
{
case 0:
fragment = new ProximosVoceFragment();
break;
case 1:
fragment = new DestaquesFragment();
break;
case 2:
fragment = new HistoricoFragment();
break;
}
return fragment;
}
@Override
public int getCount()
{
return tituloAbas.length;
}
@Override
public CharSequence getPageTitle(int position)
{
return tituloAbas[position];
}
}
package com.example.fernandosilveira.findpromotion.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.GravityCompat;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.example.fernandosilveira.findpromotion.Activity.FaleConosco;
import com.example.fernandosilveira.findpromotion.Activity.ListaDesejos;
import com.example.fernandosilveira.findpromotion.Activity.Login;
import com.example.fernandosilveira.findpromotion.Activity.MinhaConta;
import com.example.fernandosilveira.findpromotion.Activity.Sobre;
import com.example.fernandosilveira.findpromotion.Activity.TermosUso;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.ValueEventListener;
import com.example.fernandosilveira.findpromotion.Adapter.TabAdapterAnunciante;
import com.example.fernandosilveira.findpromotion.Adapter.TabAdapterUsuario;
import com.example.fernandosilveira.findpromotion.Model.Usuario;
import com.example.fernandosilveira.findpromotion.R;
import com.example.fernandosilveira.findpromotion.config.ConfiguracaoFirebase;
import com.example.fernandosilveira.findpromotion.helper.Base64Custom;
import com.example.fernandosilveira.findpromotion.helper.SlidingTabLayout;
import com.example.fernandosilveira.findpromotion.R.menu;
public class PainelControle extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener
{
private FirebaseAuth minhaauth;
private FirebaseAuth.AuthStateListener minhaAuthStateListener;
private DatabaseReference firebase ;
private String tipo;
private TextView txtnomepainel,txtemailNav,txtv;
private ProgressBar progressBar;
private Base64Custom base64Custom;
private SlidingTabLayout slidingTabLayout;
private ViewPager viewPager;
private Usuario usuario;
private TabAdapterAnunciante tabAdapterAnunciante;
private TabAdapterUsuario tabAdapterUsuario;
private ConfiguracaoFirebase configuracaoFirebase;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// buscar instancia do usuario
minhaauth = FirebaseAuth.getInstance();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_painel_controle);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_principal);
toolbar.setTitle("");
setSupportActionBar(toolbar);
slidingTabLayout = (SlidingTabLayout) findViewById(R.id.stl_tabs);
viewPager = (ViewPager) findViewById(R.id.vp_pagina);
//Configurar sliding tabs
slidingTabLayout.setDistributeEvenly(true);
slidingTabLayout.setSelectedIndicatorColors(ContextCompat.getColor(this,R.color.colorAccent));
//Configurar adapter
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
View hView = navigationView.getHeaderView(0);
txtnomepainel = (TextView)hView.findViewById(R.id.txtNomePainel);
txtemailNav = (TextView)hView.findViewById(R.id.txtEmailNav);
txtv = (TextView)hView.findViewById(R.id.txtv);
progressBar = (ProgressBar)hView.findViewById(R.id.prgbarnav);
tabAdapterAnunciante = new TabAdapterAnunciante(getSupportFragmentManager());
tabAdapterUsuario = new TabAdapterUsuario(getSupportFragmentManager());
txtnomepainel.setVisibility(View.GONE);
txtemailNav.setVisibility(View.GONE);
txtv.setVisibility(View.GONE);
progressBar.setVisibility(View.VISIBLE);
Bundle extra = getIntent().getExtras();
if (extra!= null)
{
String nom = extra.getString("nome");
String ema = extra.getString("email");
tipo = extra.getString("tipo");
txtemailNav.setText(ema);
txtnomepainel.setText(nom);
progressBar.setVisibility(View.GONE);
txtv.setVisibility(View.VISIBLE);
txtemailNav.setVisibility(View.VISIBLE);
txtnomepainel.setVisibility(View.VISIBLE);
}
if (tipo.equals("anunciante"))
{
// invocar menu
navigationView.inflateMenu(menu.menu_anunciante);
//invocar tab
viewPager.setAdapter(tabAdapterAnunciante);
//atribuir tab ao layout
slidingTabLayout.setViewPager(viewPager);
navigationView.setNavigationItemSelectedListener(this);
}
else if(tipo.equals("usuario"))
{
// invocar menu
navigationView.inflateMenu(menu.menu_usuario);
//invocar tab
viewPager.setAdapter(tabAdapterUsuario);
//atribuir tab ao layout
slidingTabLayout.setViewPager(viewPager);
navigationView.setNavigationItemSelectedListener(this);
}
}
@Override
public void onBackPressed()
{
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START))
{
drawer.closeDrawer(GravityCompat.START);
} else
{
super.onBackPressed();
}
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item)
{
int id = item.getItemId();
if (id == R.id.minhaconta)
{
startActivity(new Intent(PainelControle.this, MinhaConta.class));
} else if (id == R.id.listadedesejos)
{
startActivity(new Intent(PainelControle.this, ListaDesejos.class));
} else if (id == R.id.faleconosco)
{
startActivity(new Intent(PainelControle.this, FaleConosco.class));
} else if (id == R.id.sobre)
{
startActivity(new Intent(PainelControle.this, Sobre.class));
} else if (id == R.id.termosdeuso)
{
startActivity(new Intent(PainelControle.this, TermosUso.class));
}else if (id == R.id.logout)
{
DeslogarUser();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
public void DeslogarUser()
{
//busca a instancia do usuario e desloga o usuario
FirebaseAuth.getInstance().signOut();
startActivity(new Intent(PainelControle.this, Login.class));
finish();
overridePendingTransition(R.anim.anim_fadein, R.anim.anim_fadeout);
Toast.makeText(getApplicationContext(), "Usuario Desconectado!", Toast.LENGTH_LONG).show();
}
}
package com.example.fernandosilveira.findpromotion.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckedTextView;
import android.widget.CompoundButton;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.Switch;
import com.example.fernandosilveira.findpromotion.Model.CategoriaProd;
import com.example.fernandosilveira.findpromotion.Model.Usuario;
import com.example.fernandosilveira.findpromotion.R;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
/**
* A simple {@link Fragment} subclass.
*/
public class DestaquesFragment extends Fragment {
private Usuario usuario;
private ArrayAdapter arrayAdapter;
private ListView listView;
private CategoriaProd categoriaProd;
private ArrayList<String> addDestaques = new ArrayList<>();
private FirebaseDatabase database = FirebaseDatabase.getInstance();
private DatabaseReference ref = database.getReference();
private String meuUid;
private ArrayList<String> list = new ArrayList<>();
private Switch stGames, stBrinquedos, stColecionavéis, stEsporteeLazer, stArteeAntiguidade, stInstrumentosMusicais, stFotografia, stAssinaturaseRevistas, stArtigosReligiosos;
private Switch stBebesCia, stCasaDecoracao, stConstrucaoFerramentas, stEletrodomesticos, stPetShop, stLivros, stCDs, stDVDs, stBluRay, stFilmeDigital, stHDDVD, stDiscosVinil, stMusicaDigital, stVHS, stFitasK7Gravadas;
private Switch stModaeAcessorios, stPerfumariaCosmeticos, stSaude, stJoiasRelogios, stSexShop, stAlimentosBebidas, stIndustriaComercioNegocios, stAutomoveisVeiculos, stInformatica, stEletronicos, stTelefonia;
private String Teste = "";
private ValueEventListener valueEventListener;
private ChildEventListener childEventListener;
public DestaquesFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootview = inflater.inflate(R.layout.fragment_destaques, container, false);
if (rootview != null) {
stGames = (Switch) rootview.findViewById(R.id.swtGames);
stBrinquedos = (Switch) rootview.findViewById(R.id.swtBrinquedos);
stColecionavéis = (Switch) rootview.findViewById(R.id.swtColecionaveis);
stEsporteeLazer = (Switch) rootview.findViewById(R.id.swtEsporteeLazer);
stArteeAntiguidade = (Switch) rootview.findViewById(R.id.swtArteeAntiguidade);
stInstrumentosMusicais = (Switch) rootview.findViewById(R.id.swtInstrumentosMusicais);
stFotografia = (Switch) rootview.findViewById(R.id.swtFotografia);
stAssinaturaseRevistas = (Switch) rootview.findViewById(R.id.swtAssinaturaseRevistas);
stArtigosReligiosos = (Switch) rootview.findViewById(R.id.swtArtigosReligiosos);
stBebesCia = (Switch) rootview.findViewById(R.id.swtBebeseCia);
stCasaDecoracao = (Switch) rootview.findViewById(R.id.swtCasaeDecoracao);
stConstrucaoFerramentas = (Switch) rootview.findViewById(R.id.swtConstrucaoeFerramentas);
stEletrodomesticos = (Switch) rootview.findViewById(R.id.swtEletrodomesticos);
stPetShop = (Switch) rootview.findViewById(R.id.swtPetShop);
stLivros = (Switch) rootview.findViewById(R.id.swtLivros);
stCDs = (Switch) rootview.findViewById(R.id.swtCDs);
stDVDs = (Switch) rootview.findViewById(R.id.swtDVDs);
stBluRay = (Switch) rootview.findViewById(R.id.swtBluRay);
stFilmeDigital = (Switch) rootview.findViewById(R.id.swtFilmeDigital);
stHDDVD = (Switch) rootview.findViewById(R.id.swtHDDVD);
stDiscosVinil = (Switch) rootview.findViewById(R.id.swtDiscosdeVinil);
stMusicaDigital = (Switch) rootview.findViewById(R.id.swtMusicaDigital);
stVHS = (Switch) rootview.findViewById(R.id.swtVHS);
stFitasK7Gravadas = (Switch) rootview.findViewById(R.id.swtFitasK7Gravadas);
stModaeAcessorios = (Switch) rootview.findViewById(R.id.swtModaeAcessorios);
stPerfumariaCosmeticos = (Switch) rootview.findViewById(R.id.swtPerfumariaeCosmeticos);
stSaude = (Switch) rootview.findViewById(R.id.swtSaude);
stJoiasRelogios = (Switch) rootview.findViewById(R.id.swtJoiaseRelogios);
stSexShop = (Switch) rootview.findViewById(R.id.swtSexShop);
stAlimentosBebidas = (Switch) rootview.findViewById(R.id.swtAlimentoseBebidas);
stIndustriaComercioNegocios = (Switch) rootview.findViewById(R.id.swtIndustriaComercioeNegocios);
stAutomoveisVeiculos = (Switch) rootview.findViewById(R.id.swtAutomoveisVeiculos);
stInformatica = (Switch) rootview.findViewById(R.id.swtInformatica);
stEletronicos = (Switch) rootview.findViewById(R.id.swtEletronicos);
stTelefonia = (Switch) rootview.findViewById(R.id.swtTelefonia);
}
return rootview;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
stGames.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked == true)
{
list.add("Games");
} else
{
list.remove("Games");
}
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
ref.child("usuarios").child(user.getUid()).child("destaques").setValue(list);
}
});
stBrinquedos.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked == true) {
list.add("Brinquedos");
} else {
list.remove("Brinquedos");
}
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
ref.child("usuarios").child(user.getUid()).child("destaques").setValue(list);
}
});
Log.i("LOG","ActivityCreate");
}
@Override
public void onStart() {
super.onStart();
Log.i("LOG","onstart");
}
@Override
public void onStop() {
super.onStop();
Log.i("LOG","onStop");
}
@Override
public void onResume() {
super.onResume();
Log.i("LOG","onresume");
}
}