0

I have implemented a customAdapter and a listView, and everything works correctly, the problem now is that not as well as finding the id of each element created, I have to use methods in another activity, but when I try to say recover the id rightly gives me a null point Exception

package com.example.businesssimulator;

public class FinanziaAziendaClass {

private String nomeAziendaFinanzia;
private String settoreAziendaFinanzia;
private String numeroDipendentiFinanzia;
private String ultimoFatturatoFinanzia;
private String valoreTotaleAziendaFinanzia;
private int riquadroAziendaFinanzia;
private int lineaSeparatoriaAziendaFinanzia;
private int informazioniAzienda;

//Nelle info
private String descrizioneAzienda;
private int annoDiNascita;
private String affidabilitàAziendaFinanzia;

Entity FinanziaAziendaClass public FinanziaAziendaClass(String nomeAziendaFinanzia, String settoreAziendaFinanzia, String numeroDipendentiFinanzia, String ultimoFatturatoFinanzia, String valoreTotaleAziendaFinanzia, int riquadroAziendaFinanzia, int lineaSeparatoriaAziendaFinanzia) { this.nomeAziendaFinanzia = nomeAziendaFinanzia; this.settoreAziendaFinanzia = settoreAziendaFinanzia; this.numeroDipendentiFinanzia = numeroDipendentiFinanzia; this.ultimoFatturatoFinanzia = ultimoFatturatoFinanzia; this.valoreTotaleAziendaFinanzia = valoreTotaleAziendaFinanzia; this.riquadroAziendaFinanzia = riquadroAziendaFinanzia; this.lineaSeparatoriaAziendaFinanzia = lineaSeparatoriaAziendaFinanzia; }

    public String getNomeAziendaFinanzia() {
        return "Nome azienda: "+nomeAziendaFinanzia;
    }

    public void setNomeAziendaFinanzia(String nomeAziendaFinanzia) {
        this.nomeAziendaFinanzia = nomeAziendaFinanzia;
    }

    public String getSettoreAziendaFinanzia() {
        return "Tipologia settore: "+settoreAziendaFinanzia;
    }

    public void setSettoreAziendaFinanzia(String settoreAziendaFinanzia) {
        this.settoreAziendaFinanzia = settoreAziendaFinanzia;
    }

    public String getNumeroDipendentiFinanzia() {
        return "Numero dipendenti"+numeroDipendentiFinanzia;
    }

    public void setNumeroDipendentiFinanzia(String numeroDipendentiFinanzia) {
        this.numeroDipendentiFinanzia = numeroDipendentiFinanzia;
    }

    public String getUltimoFatturatoFinanzia() {
        return "Fatturato scorso anno: "+ultimoFatturatoFinanzia;
    }

    public void setUltimoFatturatoFinanzia(String ultimoFatturatoFinanzia) {
        this.ultimoFatturatoFinanzia = ultimoFatturatoFinanzia;
    }

    public String getValoreTotaleAziendaFinanzia() {
        return "Valore totale aziendale: "+valoreTotaleAziendaFinanzia;
    }

    public void setValoreTotaleAziendaFinanzia(String valoreTotaleAziendaFinanzia) {
        this.valoreTotaleAziendaFinanzia = valoreTotaleAziendaFinanzia;
    }

    public int getRiquadroAziendaFinanzia() {
        return riquadroAziendaFinanzia;
    }

    public void setRiquadroAziendaFinanzia(int riquadroAziendaFinanzia) {
        this.riquadroAziendaFinanzia = riquadroAziendaFinanzia;
    }

    public int getLineaSeparatoriaAziendaFinanzia() {
        return lineaSeparatoriaAziendaFinanzia;
    }

    public void setLineaSeparatoriaAziendaFinanzia(int lineaSeparatoriaAziendaFinanzia) {
        this.lineaSeparatoriaAziendaFinanzia = lineaSeparatoriaAziendaFinanzia;
    }

    public String getDescrizioneAzienda() {
        return descrizioneAzienda;
    }

    public void setDescrizioneAzienda(String descrizioneAzienda) {
        this.descrizioneAzienda = descrizioneAzienda;
    }

    public int getAnnoDiNascita() {
        return annoDiNascita;
    }

    public void setAnnoDiNascita(int annoDiNascita) {
        this.annoDiNascita = annoDiNascita;
    }

    public String getAffidabilitàAziendaFinanzia() {
        return affidabilitàAziendaFinanzia;
    }

    public void setAffidabilitàAziendaFinanzia(String affidabilitàAziendaFinanzia) {
        this.affidabilitàAziendaFinanzia = affidabilitàAziendaFinanzia;
    }
    
}
CustomAdapterFinanziaAzienda
    package com.example.businesssimulator;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import org.w3c.dom.Text;

import java.util.List;

public class CustomAdapterFinanziaAzienda extends ArrayAdapter<FinanziaAziendaClass> {
    ViewHolder2 viewHolder2;

    public CustomAdapterFinanziaAzienda(@NonNull Context context, int resource, @NonNull List<FinanziaAziendaClass> objects) {
        super(context, resource, objects);
    }

    //Classe per i widget
  








 public class ViewHolder2{
    
            ImageView imageViewRiquadroAziendaFinanzia;
            TextView textViewNomeAziendaFinanzia;
            TextView textViewSettoreAziendaFinanzia;
            TextView textViewNumeroDipendentiFinanzia;
            TextView textViewUltimoFatturatoFinanzia;
            TextView textViewValoreTotaleAziendaFinanzia;
            ImageButton imageButtonInfoAziendaFinanzia;
            ImageView imageViewLineaSeparatoriaFinanzia;
            Button bottoneDieciPerCento;
            Button bottoneVentiPerCento;
            Button bottoneTrentaPerCento;
            Button bottoneQuarantanovePerCento;
    
        }
    
        @NonNull
        @Override
        public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
            //Diamo all'oggetto finanziaAziendaiesimo la posizione della vista per ogni elemento creato successivamente nell'arrayList
            FinanziaAziendaClass finanziaAziendaIesimo = getItem(position);
            if(convertView == null){
                //Oggetto che serve per  prendere gli attributi della classe Viewholder2
                viewHolder2 = new ViewHolder2();
                //Recuperiamo l'oggetto di android Layout_inflate_service che serve per accedere ad un layout.
                LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                //Diciamo semplicemente che la View convertView deve fare l'inflate sul nostro layout ovvero disegnarla nel arrayAdapter
                convertView = inflater.inflate(R.layout.custom_adapter_finanzia_azienda,null);
                //Assegniamo a viewholder tramite l'utilizzo di convertView che effettua l'accesso all'layout il riferimento alla view singola
                viewHolder2.imageViewRiquadroAziendaFinanzia = (ImageView) convertView.findViewById(R.id.imageView_finanzia_azienda_contorno_lavoro);
                viewHolder2.textViewNomeAziendaFinanzia = (TextView) convertView.findViewById(R.id.textView_finanzia_azienda_nome_azienda);
                viewHolder2.textViewSettoreAziendaFinanzia = (TextView) convertView.findViewById(R.id.textView_finanzia_azienda_settore_azienda);
                viewHolder2.textViewNumeroDipendentiFinanzia = (TextView) convertView.findViewById(R.id.textView_finanzia_azienda_numero_dipendenti);
                viewHolder2.textViewUltimoFatturatoFinanzia = (TextView) convertView.findViewById(R.id.textView_finanzia_azienda_ultimo_fatturato);
                viewHolder2.textViewValoreTotaleAziendaFinanzia = (TextView) convertView.findViewById(R.id.textView_finanzia_azienda_valore_azienda);
                viewHolder2.imageViewLineaSeparatoriaFinanzia = (ImageView) convertView.findViewById(R.id.imageView_finanzia_azienda_linea_separatoria);
                viewHolder2.imageButtonInfoAziendaFinanzia = (ImageButton) convertView.findViewById(R.id.imageButton_finanzia_azienda_informazioni_azienda);
                viewHolder2.bottoneDieciPerCento = (Button) convertView.findViewById(R.id.button_finanzia_azienda_dieci_per_cento);
                viewHolder2.bottoneVentiPerCento = (Button) convertView.findViewById(R.id.button_finanzia_azienda_venti_per_cento);
                viewHolder2.bottoneTrentaPerCento = (Button) convertView.findViewById(R.id.button_finanzia_azienda_trenta_per_cento);
                viewHolder2.bottoneQuarantanovePerCento = (Button) convertView.findViewById(R.id.button_finanzia_azienda_quarantanove_per_cento);
                //Inseriamo nella convertView il ricordo dei riferimenti di viewholder delle view singole
                // e' come se impostiamo un insieme di id all'interno di un oggetto e il tag li memorizza tutti
                convertView.setTag(viewHolder2);
    
    
            }else {
             
                viewHolder2 = (ViewHolder2) convertView.getTag();
    
            }
    
   
         

viewHolder2.imageViewRiquadroAziendaFinanzia.setImageResource(finanziaAziendaIesimo.getRiquadroAziendaFinanzia()); viewHolder2.textViewNomeAziendaFinanzia.setText(finanziaAziendaIesimo.getNomeAziendaFinanzia()); viewHolder2.textViewSettoreAziendaFinanzia.setText(finanziaAziendaIesimo.getSettoreAziendaFinanzia()); viewHolder2.textViewNumeroDipendentiFinanzia.setText(finanziaAziendaIesimo.getNumeroDipendentiFinanzia()); viewHolder2.textViewUltimoFatturatoFinanzia.setText(finanziaAziendaIesimo.getUltimoFatturatoFinanzia()); viewHolder2.textViewValoreTotaleAziendaFinanzia.setText(finanziaAziendaIesimo.getValoreTotaleAziendaFinanzia()); viewHolder2.imageViewLineaSeparatoriaFinanzia.setImageResource(finanziaAziendaIesimo.getLineaSeparatoriaAziendaFinanzia());

            return convertView;
    
        }
    
    
    }

XML CustomAdapterFinanziaAzienda

FinanziaAzienda

    package com.example.businesssimulator;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.TextView;
    
    import java.util.ArrayList;
    

public class FinanziaAzienda extends AppCompatActivity {

    private double soldi;
    private int soldiShop;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_finanzia_azienda);
    }


    @Override
    protected void onResume() {
        super.onResume();
        creazioneFinanziaAziende();


    }


    public  void creazioneFinanziaAziende(){

        ListView listaFinanziaAziende = findViewById(R.id.listView_lista_finanzia_aziende);

        ArrayList<FinanziaAziendaClass> finanziaAziendaClassArrayList = new ArrayList<FinanziaAziendaClass>();
        finanziaAziendaClassArrayList.add(new FinanziaAziendaClass("C corporation",
                "Informatico","15","10000.00","40000.00",
                R.drawable.contorni_lavori_moddata,R.drawable.linee_separatorie_lavori_modificate));

         nella classe customizzata, serve per effettuare
         elementi presenti nell'arrayList in oggetti View da
        
        CustomAdapterFinanziaAzienda finanziaAziendaAdapter = new CustomAdapterFinanziaAzienda(getApplicationContext(),R.layout.custom_adapter_finanzia_azienda,finanziaAziendaClassArrayList);
        //Riferimento alla listView all'interno dell'activity_cerca_lavoro, con l'adapter settato per poter mostrare un array di oggetti view
        listaFinanziaAziende.setAdapter(finanziaAziendaAdapter);



}

public void recuperoPassaggioSoldi(){

    TextView textViewSoldi = findViewById(R.id.textView_soldi);
    TextView textViewSoldiShop = findViewById(R.id.textView_soldi_shop);
    soldi = getIntent().getDoubleExtra("valore_soldi",soldi);
    soldiShop = getIntent().getIntExtra("valore_soldi_shop",soldiShop);
    String soldiString = Double.toString(soldi);
    String soldiShopString = String.valueOf(soldiShop);
    textViewSoldi.setText(soldiString);
    textViewSoldiShop.setText(soldiShopString);


}

} I had thought about finding the id inside the CustomAdapter class, but I have no idea how to do it, perhaps with getItem. A thousand thanks

XML

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/imageView_finanzia_azienda_contorno_lavoro"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="55dp"
        android:layout_marginTop="16dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/contorni_lavori_moddata" />

    <LinearLayout
        android:layout_width="291dp"
        android:layout_height="108dp"
        android:layout_marginStart="62dp"
        android:layout_marginTop="23dp"
        android:orientation="vertical"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:id="@+id/textView_finanzia_azienda_nome_azienda"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingStart="8dp"
            android:text="Nome azienda:"
            android:textColor="@color/black" />

        <TextView
            android:id="@+id/textView_finanzia_azienda_settore_azienda"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingStart="8dp"
            android:text="Settore azienda:"
            android:textColor="@color/black" />

        <TextView
            android:id="@+id/textView_finanzia_azienda_numero_dipendenti"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingStart="8dp"
            android:text="Numero dipendenti"
            android:textColor="@color/black" />

        <TextView
            android:id="@+id/textView_finanzia_azienda_ultimo_fatturato"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingStart="8dp"
            android:text="Ultimo fatturato:"
            android:textColor="@color/black" />

        <TextView
            android:id="@+id/textView_finanzia_azienda_valore_azienda"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingStart="8dp"
            android:text="Valore azienda:"
            android:textColor="@color/black" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout13"
        android:layout_width="280dp"
        android:layout_height="52dp"
        android:layout_marginStart="64dp"
        android:layout_marginTop="134dp"
        android:orientation="horizontal"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <Button
            android:id="@+id/button_finanzia_azienda_dieci_per_cento"
            android:layout_width="15dp"
            android:layout_height="35dp"
            android:layout_weight="1"
            android:background="@drawable/bottone_moddato_custom_lavoro"
            android:text="10%"
            app:backgroundTint="@null"
            tools:ignore="TouchTargetSizeCheck" />

        <Button
            android:id="@+id/button_finanzia_azienda_venti_per_cento"
            android:layout_width="15dp"
            android:layout_height="35dp"
            android:layout_marginStart="6dp"
            android:layout_weight="1"
            android:background="@drawable/bottone_moddato_custom_lavoro"
            android:text="20%"
            app:backgroundTint="@null"
            tools:ignore="TouchTargetSizeCheck" />

        <Button
            android:id="@+id/button_finanzia_azienda_trenta_per_cento"
            android:layout_width="15dp"
            android:layout_height="35dp"
            android:layout_marginStart="6dp"
            android:layout_weight="1"
            android:background="@drawable/bottone_moddato_custom_lavoro"
            android:text="30%"
            app:backgroundTint="@null"
            tools:ignore="TouchTargetSizeCheck" />

        <Button
            android:id="@+id/button_finanzia_azienda_quarantanove_per_cento"
            android:layout_width="15dp"
            android:layout_height="35dp"
            android:layout_marginStart="6dp"
            android:layout_weight="1"
            android:background="@drawable/bottone_moddato_custom_lavoro"
            android:text="49%"
            app:backgroundTint="@null"
            tools:ignore="TouchTargetSizeCheck" />
    </LinearLayout>

    <ImageButton
        android:id="@+id/imageButton_finanzia_azienda_informazioni_azienda"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_marginTop="16dp"

        android:background="@android:drawable/ic_menu_info_details"
        android:tint="#0277BD"
        app:layout_constraintStart_toEndOf="@+id/imageView_finanzia_azienda_contorno_lavoro"
        app:layout_constraintTop_toTopOf="parent"
        tools:ignore="TouchTargetSizeCheck" />

    <ImageView
        android:id="@+id/imageView_finanzia_azienda_linea_separatoria"
        android:layout_width="300dp"
        android:layout_height="38dp"
        android:layout_marginStart="55dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView_finanzia_azienda_contorno_lavoro"
        app:srcCompat="@drawable/linee_separatorie_lavori_modificate" />
</androidx.constraintlayout.widget.ConstraintLayout>

I try to use onItemClick but don't work. Thank you :)

  • https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it – javdromero Aug 24 '22 at 21:16
  • i know when there is the problem of the null point exception, the problem is i dont know how to manipulate th bottons of each item of the listView, i use arrayList – Daniele Annese Aug 24 '22 at 23:45

0 Answers0