如何为.ValueAt的每个结果启动一个新活动?

时间:2018-09-20 15:11:01

标签: android android-recyclerview

我已经使用RecyclerAdapter在RecyclerView中创建了一个列表。但是如何为每个结果值启动一个新活动?像

asd.valueAt(0,1,2) 

我尝试了(0 | 1 | 2)(0 + 1 + 2 ),但是都没有用。 该列表对用户有3个选择的限制。所以我需要为3个值,即(0,1,2)(4,3,1)

课程:

public class Marca_Produto extends AppCompatActivity implements RecyclerViewAdapter.OnRecyclerViewItemClickListener {

    RecyclerView MarcaTagProduto;
    RecyclerViewAdapter recyclerViewAdapter;
    List<String> TagsDaMarca;
    private Button MarcaContinuarTagBtn;
    int selectedItemCount;
    Bundle bundle;
    HashMap<Integer,List<String>> TagsDaMarcaData = new HashMap<Integer, List<String>>();
    private List<String> listResult = new ArrayList<String>();


    @Override
    protected void onCreate(Bundle savedInstanceState) {

        //=============================

        ArrayList<String> Alimentos = new ArrayList<String>();
        Alimentos.add("Saudáveis");
        Alimentos.add("Doces");
        Alimentos.add("Salgados");
        Alimentos.add("Bebidas");
        TagsDaMarcaData.put(0, Alimentos);

        ArrayList<String> Beleza = new ArrayList<String>();
        Beleza.add("Pele");
        Beleza.add("Cabelo");
        Beleza.add("Maquiagem/ Perfumaria");
        TagsDaMarcaData.put(1, Beleza);

        ArrayList<String> Moda = new ArrayList<String>();
        Moda.add("Moda praia");
        Moda.add("Lingerie");
        Moda.add("Moda esportiva");
        Moda.add("Casual");
        Moda.add("Social");
        Moda.add("Jeans");
        Moda.add("Calçados");
        Moda.add("Óculos/ Acessórios");
        Moda.add("Bolsa");
        TagsDaMarcaData.put(2,Moda );

        ArrayList<String> FitnessEsporte = new ArrayList<String>();
        FitnessEsporte.add("Roupas");
        FitnessEsporte.add("Suplementos");
        FitnessEsporte.add("Acessórios/ Utilitários");
        FitnessEsporte.add("Bike/Skate");
        FitnessEsporte.add("Outros");
        TagsDaMarcaData.put(3,FitnessEsporte );

        ArrayList<String> Automotores = new ArrayList<String>();
        Automotores.add("Carro");
        Automotores.add("Moto");
        Automotores.add("Helicoptero");
        Automotores.add("Avião");
        Automotores.add("Barco");
        TagsDaMarcaData.put(4,Automotores );

        ArrayList<String> BebidaAlcoolica = new ArrayList<String>();
        BebidaAlcoolica.add("Destilados");
        BebidaAlcoolica.add("Cervejas");
        BebidaAlcoolica.add("Vinho/ Champagne");
        BebidaAlcoolica.add("Outros");
        TagsDaMarcaData.put(5,BebidaAlcoolica );

        ArrayList<String> EletronicosEletrodomesticos = new ArrayList<String>();
        EletronicosEletrodomesticos.add("Celular");
        EletronicosEletrodomesticos.add("Acessórios/ Utilitários");
        EletronicosEletrodomesticos.add("Do lar/ Cozinha");
        EletronicosEletrodomesticos.add("Outros");
        TagsDaMarcaData.put(6,EletronicosEletrodomesticos );

        ArrayList<String> Infantil = new ArrayList<String>();
        Infantil.add("Roupas");
        Infantil.add("Calçados");
        Infantil.add("Brinquedo");
        Infantil.add("Outros");
        TagsDaMarcaData.put(7,Infantil );

        ArrayList<String> Joalheria = new ArrayList<String>();
        Joalheria.add("Jóias");
        Joalheria.add("Semi Jóias");
        Joalheria.add("Bijuterias");
        TagsDaMarcaData.put(8,Joalheria );

        ArrayList<String> myList9 = new ArrayList<String>();
        myList9.add("OUTROS");
        TagsDaMarcaData.put(9,myList9 );


        //TagsDaMarcaData.put("FITNESS/ESPORTE", myList);
        //TagsDaMarcaData.put("AUTOMOTORES", myList);
        //TagsDaMarcaData.put("BEBIDA ALCÓOLICA", myList);
        //TagsDaMarcaData.put("ELETRÔNICOS", myList);
        //TagsDaMarcaData.put("INFANTIL", myList);
        //TagsDaMarcaData.put("JOALHERIA", myList);
        //TagsDaMarcaData.put("OUTROS", myList);
        //==============================



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

        MarcaTagProduto = findViewById(R.id.MarcaTagProduto);
        selectedItemCount = 0;

        Marca_produto_tags();
        recyclerViewAdapter = new RecyclerViewAdapter(TagsDaMarca,this);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        MarcaTagProduto.setLayoutManager(linearLayoutManager);
        MarcaTagProduto.setHasFixedSize(true);

        MarcaContinuarTagBtn = (Button)findViewById(R.id.MarcaContinuarTag);

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



        MarcaTagProduto.setAdapter(recyclerViewAdapter);

        /****** Adding divider between items in recyclerView list*/
        DividerItemDecoration dividerItemDecoration;
        dividerItemDecoration = new DividerItemDecoration(this, linearLayoutManager.getOrientation());
        MarcaTagProduto.addItemDecoration(dividerItemDecoration);

    }

    public void Marca_produto_tags()
    {
        TagsDaMarca = new ArrayList<String>();
       // TagsDaMarcaData = new HashMap<String, List<String>>();

        // Alimentos fica na posição 0
        TagsDaMarca.add("ALIMENTOS");

        // Beleza fica na posição 1
        TagsDaMarca.add("BELEZA");

        // Moda fica na posição 2
        TagsDaMarca.add("MODA");

        // Fitness/Esporte fica na posição 3
        TagsDaMarca.add("FITNESS/ESPORTE");

        // Automotores fica na posição 4
        TagsDaMarca.add("AUTOMOTORES");

        // Bebida Alcóolica fica na posição 5
        TagsDaMarca.add("BEBIDA ALCÓOLICA");

        // Eletrônicos fica na posição 6
        TagsDaMarca.add("ELETRÔNICOS");

        // Infantil fica na posição 7
        TagsDaMarca.add("INFANTIL");

    }

    public void openMarcaContinuarTag() {

        //===========================

    //        Toast.makeText(getApplicationContext(), "teste alo", Toast.LENGTH_LONG).show();

        SparseBooleanArray asd = recyclerViewAdapter.sparseBooleanArray;


        String str="";
        String str1="";

        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 = TagsDaMarcaData.get(key);
              for (int z = 0; z < (ListResult.size()); z++) {
                String asdasd=ListResult.get(z);
                str = str + " - " +asdasd;
              }

            } else {
                // item was in the sparse array, but not checked.
            }
        }

        if(asd.valueAt(0)){
            Intent intent = new Intent(this, Marca_Value0.class);
            startActivity(intent);
        }

        if(asd.valueAt(1)){
            Intent intent = new Intent(this, Marca_Value1.class);
            startActivity(intent);
        }

        if(asd.valueAt(2)){
            Intent intent = new Intent(this, Marca_Value2.class);
            startActivity(intent);
        }

        if(asd.valueAt(3)){
            Intent intent = new Intent(this, Marca_Value2.class);
            startActivity(intent);
        }
        if(asd.valueAt(4)){
            Intent intent = new Intent(this, Marca_Value3.class);
            startActivity(intent);
        }
        if(asd.valueAt(5)){
            Intent intent = new Intent(this, Marca_Value4.class);
            startActivity(intent);
        }
        if(asd.valueAt(6)){
            Intent intent = new Intent(this, Marca_Value5.class);
            startActivity(intent);
        }
        if(asd.valueAt(7)){
            Intent intent = new Intent(this, Marca_Value6.class);
            startActivity(intent);
        }
        if(asd.valueAt(8)){
            Intent intent = new Intent(this, Marca_Value7.class);
            startActivity(intent);
        }
        if(asd.valueAt(9)){
            Intent intent = new Intent(this, Marca_Value8.class);
            startActivity(intent);
        }


        Toast.makeText(getApplicationContext(), str,Toast.LENGTH_LONG).show(); // FUCK
        //===========================


    }

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


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

适配器:

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{



    public static SparseBooleanArray sparseBooleanArray;
       // for identifying: in list which items are selected
    OnRecyclerViewItemClickListener listener;
    int meutotal = 0;


    List<String> produto = new ArrayList<>();
    // Alimentos fica na posição 0


    public RecyclerViewAdapter(List<String> itemTitles, OnRecyclerViewItemClickListener listener)
    {
        sparseBooleanArray = new SparseBooleanArray();
        this.listener = listener;
    }

    public RecyclerViewAdapter(List<String> tagsDaMarca, ValueEventListener valueEventListener) {

    }

    @Override
    public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_marca_tag_servico_layout,parent,false);
        return new RecyclerViewAdapter.ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(RecyclerViewAdapter.ViewHolder holder, int position) {


        if (sparseBooleanArray.get(position))
        {
            holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
            holder.itemTextView.setTextColor(Color.rgb(114, 47, 55));
        }
        else
        {
            holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
            holder.itemTextView.setTextColor(Color.rgb(100, 100, 100));
        }
    }

    @Override
    public int getItemCount() {
        return produto.size();
    }


    /******** View Holder Class*/
    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
        TextView itemTextView;
        public TextView alert;

        public ViewHolder(View itemView) {
            super(itemView);
            itemTextView = itemView.findViewById(R.id.itemTextView);
            itemTextView.setOnClickListener(this);

        }

        @Override
        public void onClick(View view) {

            if (!sparseBooleanArray.get(getAdapterPosition()))
            {
               if (meutotal < 3) {
                   sparseBooleanArray.put(getAdapterPosition(), true);
                   notifyItemChanged(getAdapterPosition());
                   meutotal = meutotal +1;
               }
            }
            else // if clicked item is already selected
            {
                sparseBooleanArray.put(getAdapterPosition(),false);
                notifyItemChanged(getAdapterPosition());
                meutotal = meutotal -1;
            }
        }
    }



    public interface OnRecyclerViewItemClickListener{
        public void selectedItemCount(int count);
    }
}

0 个答案:

没有答案