selectedItemCount无法正确检索所有列表位置

时间:2018-12-29 03:07:32

标签: android firebase-realtime-database android-recyclerview

我用firebase的recyclerview创建了一个模型类,但是当我尝试获取时,itens的位置被选中。 selectedItemCount对于每个项目仅返回相同的值...用户只能在列表中选择3个类别,我如何才能检索类别中每个位置的正确值? But on firebase the selectedItemCount only return the same value

查看selectedItemCount = 0;他们将始终返回位置0,对不对? 我真的需要为列表中的每个项目创建53 selectedItemCount吗?这样吗?

int selectedItemCount0;
int selectedItemCount1;
int selectedItemCount2;
int selectedItemCount3;
int selectedItemCount4;
int selectedItemCount5;
int selectedItemCount6;
int selectedItemCount7;
int selectedItemCount8;
int selectedItemCount9;
int selectedItemCount10;
int selectedItemCount11;



selectedItemCount = 0;
selectedItemCount = 1;
selectedItemCount = 2;
selectedItemCount = 3;
selectedItemCount = 4;
selectedItemCount = 5;
selectedItemCount = 6;
selectedItemCount = 7;
selectedItemCount = 8;
selectedItemCount = 9;
selectedItemCount = 10;
selectedItemCount = 11;


and i pass this on my onClick `public void openDIContinuarTag()`


mDatabase.child(identificadorUsuarios).child("Categorias").child("0").setValue(Categoria.get(selectedItemCount));
    mDatabase.child(identificadorUsuarios).child("Categorias").child("1").setValue(Categoria.get(selectedItemCount1));
    mDatabase.child(identificadorUsuarios).child("Categorias").child("2").setValue(Categoria.get(selectedItemCount2));

或者如果(selectedItemCount = position0){    mDatabase.child(identificadorUsuarios).child(“ Categorias”)。child(“ 2”)。setValue(Categoria.get(selectedItemCount));; }如果{     mDatabase.child(identificadorUsuarios).child(“ Categorias”)。child(“ 1”)。setValue(Categoria.get(selectedItemCount1));; }

等...?

我的模型课程

public class Categorias {

private String Id;
private String Categoria;
private int Imagem;
private String ImagemUri;

public Categorias(String id, String categoria, int imagem, String imagemUri) {
    Id = id;
    Categoria = categoria;
    Imagem = imagem;
    ImagemUri = imagemUri;
}

public String getId() {
    return Id;
}

public void setId(String id) {
    Id = id;
}

public String getCategoria() {
    return Categoria;
}

public void setCategoria(String categoria) {
    Categoria = categoria;
}

@Exclude
public int getImagem() {
    return Imagem;
}

@Exclude
public void setImagem(int imagem) {
    Imagem = imagem;
}

public String getImagemUri() {
    return ImagemUri;
}

public void setImagemUri(String imagemUri) {
    ImagemUri = imagemUri;
}

}

我的类别。java

RecyclerView DICategoriasRecyclerView;
RecyclerViewAdapter2 recyclerViewAdapter2;
ArrayList<TagsModel> DICategorias;
private Button DIBotaoContinuarTag;
**int selectedItemCount;**
Bundle bundle;
HashMap<Integer, List<String>> DICategoriasData = new HashMap<Integer, List<String>>();
ArrayList<Categorias> Categoria = new ArrayList<>();

private DatabaseReference mDatabase;

private FirebaseAuth firebaseAuth;

private Uri mImageUri;

private StorageReference storageReference;

boolean isToggledRadio1 = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    //=============================

    firebaseAuth = FirebaseAuth.getInstance();
    mDatabase = FirebaseDatabase.getInstance().getReference().child("Usuários");
    storageReference = FirebaseStorage.getInstance().getReference().child("Categorias");

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_influencer_categorias);
    getSupportActionBar().hide();


    di_tags1();
    DICategoriasRecyclerView = findViewById(R.id.DICategoriasRecyclerView);

    **selectedItemCount = 0;**

    recyclerViewAdapter2 = new RecyclerViewAdapter2(Categoria, this);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    DICategoriasRecyclerView.setLayoutManager(linearLayoutManager);
    DICategoriasRecyclerView.setLayoutManager(new GridLayoutManager(this, 3));
    DICategoriasRecyclerView.setHasFixedSize(true);
    recyclerViewAdapter2.notifyDataSetChanged();

    DIBotaoContinuarTag = (Button) findViewById(R.id.DIBotaoContinuarTag);

    DIBotaoContinuarTag.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openDIContinuarTag();
        }
    });

    DICategoriasRecyclerView.setAdapter(recyclerViewAdapter2);

}


public void di_tags1() {

    // ACESSORIÓS fica na posição 0
    Categoria.add(new Categorias("0", "ACESSORIÓS", R.drawable.categorias_acessorios));

    // ANIMAIS fica na posição 1
    Categoria.add(new Categorias("1", "ANIMAIS", R.drawable.categorias_animais));

    // ARQUITETURA fica na posição 2
    Categoria.add(new Categorias("2", "ARQUITETURA", R.drawable.categorias_arquitetura));

    // ASTROLOGIA fica na posição 3
    Categoria.add(new Categorias("3", "ASTROLOGIA", R.drawable.categorias_astrologia));

    // ATUALIDADES fica na posição 4
    Categoria.add(new Categorias("4", "ATUALIDADES", R.drawable.categorias_atualidades));

    // AUTOCONHECIMENTO fica na posição 5
    Categoria.add(new Categorias("5", "AUTOCONHECIMENTO", R.drawable.categorias_autoconhecimento));

    // AUTOMOTORES fica na posição 6
    Categoria.add(new Categorias("6", "AUTOMOTORES", R.drawable.categorias_automotores));

    // BELEZA fica na posição 7
    Categoria.add(new Categorias("7", "BELEZA", R.drawable.categorias_beleza));

    // CASAMENTO fica na posição 8
    Categoria.add(new Categorias("8", "CASAMENTO", R.drawable.categorias_casamento));

    // COMPORTAMENTO fica na posição 9
    Categoria.add(new Categorias("9", "COMPORTAMENTO", R.drawable.categorias_comportamento));

    // COMUNICAÇÃO fica na posição 10
    Categoria.add(new Categorias("10", "COMUNICAÇÃO", R.drawable.categorias_comunicacao));

    // DECORAÇÃO fica na posição 11
    Categoria.add(new Categorias("11", "DECORAÇÃO", R.drawable.categorias_decoracao));

    // DERMATOLOGIA fica na posição 12
    Categoria.add(new Categorias("12", "DERMATOLOGIA", R.drawable.categorias_dermatologia));

    // DICAS fica na posição 13
    Categoria.add(new Categorias("13", "DICAS", R.drawable.categorias_dicas));

    // DIVERSÃO fica na posição 14
    Categoria.add(new Categorias("14", "DIVERSÃO", R.drawable.categorias_diversao));

    // ECOLOGIA fica na posição 15
    Categoria.add(new Categorias("15", "ECOLOGIA", R.drawable.categorias_ecologia));

    // EDUCAÇÃO fica na posição 16
    Categoria.add(new Categorias("16", "EDUCAÇÃO", R.drawable.categorias_educacao));

    // EMPREENDEDORISMO fica na posição 17
    Categoria.add(new Categorias("17", "EMPREENDEDORISMO", R.drawable.categorias_empreendedorismo));

    // ENTRETENIMENTO fica na posição 18
    Categoria.add(new Categorias("18", "ENTRETENIMENTO", R.drawable.categorias_entretenimento));

    // ESPORTES fica na posição 19
    Categoria.add(new Categorias("19", "ESPORTES", R.drawable.categorias_esportes));

    // EVENTOS fica na posição 20
    Categoria.add(new Categorias("20", "EVENTOS", R.drawable.categorias_eventos));

    // FINANCEIRO fica na posição 21
    Categoria.add(new Categorias("21", "FINANCEIRO", R.drawable.categorias_financeiro));

    // FISICULTURISMO fica na posição 22
    Categoria.add(new Categorias("22", "FISICULTURISMO", R.drawable.categorias_fisiculturismo));

    // FITNESS fica na posição 23
    Categoria.add(new Categorias("23", "FITNESS", R.drawable.categorias_fitness));

    // FOFOCA fica na posição 24
    Categoria.add(new Categorias("24", "FOFOCA", R.drawable.categorias_fofoca));

    // FRASES fica na posição 25
    Categoria.add(new Categorias("25", "FRASES", R.drawable.categorias_frases));

    // GAMES fica na posição 26
    Categoria.add(new Categorias("26", "GAMES", R.drawable.categorias_games));

    // GASTRONOMIA fica na posição 27
    Categoria.add(new Categorias("27", "GASTRONOMIA", R.drawable.categorias_gastronomia));

    // GIFTS fica na posição 28
    Categoria.add(new Categorias("28", "GIFTS", R.drawable.categorias_gifts));

    // JORNALISMO fica na posição 29
    Categoria.add(new Categorias("29", "JORNALISMO", R.drawable.categorias_jornalismo));

    // LIFESTYLE fica na posição 30
    Categoria.add(new Categorias("30", "LIFESTYLE", R.drawable.categorias_lifestyle));

    // LITERATURA fica na posição 31
    Categoria.add(new Categorias("31", "LITERATURA", R.drawable.categorias_literatura));

    // LUXO fica na posição 32
    Categoria.add(new Categorias("32", "LUXO", R.drawable.categorias_luxo));

    // MAKE-UP fica na posição 33
    Categoria.add(new Categorias("33", "MAKE-UP", R.drawable.categorias_make_up));

    // MATERNIDADE fica na posição 34
    Categoria.add(new Categorias("34", "MATERNIDADE", R.drawable.categorias_maternidade));

    // MEDICINA fica na posição 35
    Categoria.add(new Categorias("35", "MEDICINA", R.drawable.categorias_medicina));

    // MEIO AMBIENTE fica na posição 36
    Categoria.add(new Categorias("36", "MEIO AMBIENTE", R.drawable.categorias_meio_ambiente));

    // MODA fica na posição 37
    Categoria.add(new Categorias("37", "MODA", R.drawable.categorias_moda));

    // MÚSICA fica na posição 38
    Categoria.add(new Categorias("38", "MÚSICA", R.drawable.categorias_musica));

    // NEWS fica na posição 39
    Categoria.add(new Categorias("39", "NEWS", R.drawable.categorias_news));

    // ODONTOLOGIA fica na posição 40
    Categoria.add(new Categorias("40", "ODONTOLOGIA", R.drawable.categorias_odontologia));

    // PAISAGISMO fica na posição 41
    Categoria.add(new Categorias("41", "PAISAGISMO", R.drawable.categorias_paisagismo));

    // PALESTRAS fica na posição 42
    Categoria.add(new Categorias("42", "PALESTRAS", R.drawable.categorias_palestras));

    // PATERNIDADE fica na posição 43
    Categoria.add(new Categorias("43", "PATERNIDADE", R.drawable.categorias_paternidade));

    // PETS fica na posição 44
    Categoria.add(new Categorias("44", "PETS", R.drawable.categorias_pets));

    // POLÍTICA fica na posição 45
    Categoria.add(new Categorias("45", "POLÍTICA", R.drawable.categorias_politica));

    // PRATICIDADE fica na posição 46
    Categoria.add(new Categorias("46", "PRATICIDADE", R.drawable.categorias_praticidade));

    // PSICOLOGIA fica na posição 47
    Categoria.add(new Categorias("47", "PSICOLOGIA", R.drawable.categorias_psicologia));

    // RESTAURANTE fica na posição 48
    Categoria.add(new Categorias("48", "RESTAURANTE", R.drawable.categorias_restaurante));

    // SAÚDE fica na posição 49
    Categoria.add(new Categorias("49", "SAÚDE", R.drawable.categorias_saude));

    // SUPLEMENTOS fica na posição 50
    Categoria.add(new Categorias("50", "SUPLEMENTOS", R.drawable.categorias_suplementos));

    // TECNOLOGIA fica na posição 51
    Categoria.add(new Categorias("51", "TECNOLOGIA", R.drawable.categorias_tecnologia));

    // TERAPIA fica na posição 52
    Categoria.add(new Categorias("52", "TERAPIA", R.drawable.categorias_terapia));

    // VIAGENS fica na posição 53
    Categoria.add(new Categorias("53", "VIAGENS", R.drawable.categorias_viagens));

    // YOUTUBE fica na posição 54
    Categoria.add(new Categorias("54", "YOUTUBE", R.drawable.categorias_youtube));

}


public void openDIContinuarTag() {

    SparseBooleanArray asd = recyclerViewAdapter2.sparseBooleanArray;

    ArrayList<String> ListaFinal = new ArrayList<String>();
    ListaFinal.clear();
    final int checkedItemCount = asd.size();
    for (int i = 0; i < checkedItemCount; i++) {  // loop em todos os items... mas o Toast Sobrescreve a outra mensagem.
        int key = asd.keyAt(i);
        if (asd.get(key)) {
            List<String> ListResult = DICategoriasData.get(key);

            ListaFinal.add(String.valueOf(key));
            for (int z = 0; z < (ListResult.size()); z++) { // Faz o Loop dentro de todos os itens da sublista
                String asdasd = ListResult.get(z);
                ListaFinal.add(asdasd);

            }

        } else {

        }
    }

    final int selectedItemCount = asd.size();
    for (int i = 0; i < selectedItemCount; i++) {
        int key = asd.keyAt(i);
        if (asd.get(key)) {
            List<String> ListResult = Categorias.class.;

            ListaFinal.add(String.valueOf(key));
            for (int z = 0; z < (ListResult.size()); z++) {
                String asdasd = ListResult.get(z);
                ListaFinal.add(asdasd);

            }

        } else {
        }
    }

    String identificadorUsuarios = Base64Custom.codificarBase64(firebaseAuth.getCurrentUser().getEmail().toString());

    mDatabase.child(identificadorUsuarios).child("Categorias").child("0").setValue(Categoria.get(selectedItemCount));
    mDatabase.child(identificadorUsuarios).child("Categorias").child("1").setValue(Categoria.get(selectedItemCount));
    mDatabase.child(identificadorUsuarios).child("Categorias").child("2").setValue(Categoria.get(selectedItemCount));

    Intent intent = new Intent(this, Influencer_Sub_Categorias.class);
    intent.putStringArrayListExtra("Result", ListaFinal);
    startActivity(intent);

}

@Override
public void selectedItemCount(int position) {
    selectedItemCount = position;
}


@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
}

}

1 个答案:

答案 0 :(得分:0)

也许我需要在“ selectedItemCount”上使用循环?