Установка пользовательского адаптера для ListView заставляет мое приложение переходить к предыдущему действию - PullRequest
0 голосов
/ 14 ноября 2018

Когда я пытаюсь заполнить свой список с помощью моего специального адаптера или объекта моего пользовательского класса, приложение возвращается к предыдущему действию.
Я попытался отладить, но не могу найти строку, которая вызывает это поведение.
Может быть, в макете есть что-то, что в настоящий момент, чтобы его раздувать и рисовать, сталкивается с какой-то проблемой.

КОД ДЕЯТЕЛЬНОСТИ

try {
        JSONObject obj = new JSONObject(response);

        String objservice = obj.getString("service");
        String objstatuCode = obj.getString("status-code");
        String objdescription = obj.getString("status-description");

        JSONObject result = obj.getJSONObject("result");


        JSONArray cronologie = result.getJSONArray("dettaglioAttivita");


        inputItems = new ArrayList<DTOLibrettoCronologia>();


        for (int i = 0; i < cronologie.length(); i++) {


            JSONObject row = cronologie.getJSONObject(i);


           DTOLibrettoCronologia tmp = new DTOLibrettoCronologia("s", "s", "s", "s", "s", "s", "s");
            inputItems.add(tmp);

        }


    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
    }

    librettoCronologiaAdapter adapter = new librettoCronologiaAdapter(getApplicationContext(),
            R.layout.libretto_cronologia, inputItems);


    listView = (ListView) findViewById(R.id.cronologia_listview);
    listView.setAdapter(adapter);
    listView.setSmoothScrollbarEnabled(true);

КОД ЭЛЕМЕНТА XML

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id = "@+id/libretto_cronologia_element"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="0dp"
    android:background="@color/transparent">
    <!-- primary wrapper -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:background="@color/transparent">

        <!--image -->
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:background="@color/transparent"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="16dp">
            <ImageView
                android:id="@+id/cronologiaState"
                android:layout_width="36dp"
                android:layout_height="40dp"
                android:src="@drawable/check_cronologia_fail"/>
        </LinearLayout>

        <!--text -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:background="@color/transparent"
            android:paddingLeft="8dp"
            android:paddingTop="8dp">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_marginLeft="4dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Data Appello: "/>
                <TextView
                    android:id="@+id/cronologiaDataAppello"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="content"/>
            </LinearLayout>


            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_marginLeft="4dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="tipo: "/>
                <TextView
                    android:id="@+id/cronologiaTipo"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="content"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_marginLeft="4dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Voto/Giudizio: "/>
                <TextView
                    android:id="@+id/cronologiaVoto"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="content"/>
                </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_marginLeft="4dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Stato: "/>
                <TextView
                    android:id="@+id/cronologiaStato"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="content"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_marginLeft="4dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Data Verb: "/>
                <TextView
                    android:id="@+id/cronologiaVerb"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="content"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_marginLeft="4dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Superato: "/>
                <TextView
                    android:id="@+id/cronologiaSuperato"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="content"/>
            </LinearLayout>

        </LinearLayout>



    </LinearLayout>
</RelativeLayout>

КОД XMLACTIVITY

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/cronologia_materia"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal|bottom">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">


        <!-- TOP BAR -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:background="@color/colorPrimary"
            android:padding="20dp">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="cronologia esami per"
                android:textSize="13dp"/>
            <TextView
                android:id="@+id/nomeMateria"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="-"
                android:textSize="18dp"/>
        </LinearLayout>



        <!-- general info -->
        <LinearLayout
            android:id="@+id/recapWrapper"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/transparent"
            android:orientation="vertical"
            android:padding="20dp">



            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <TextView
                    android:id="@+id/annoCorso"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Anno di Corso:"
                    android:paddingRight="10dp"/>
                <TextView
                    android:id="@+id/annoCorsoValue"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="-" />
            </LinearLayout>


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <TextView
                    android:id="@+id/tipologia"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Tipologia d'esame:"
                    android:paddingRight="10dp"/>
                <TextView
                    android:id="@+id/tipologiaValue"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="-" />
            </LinearLayout>


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <TextView
                    android:id="@+id/corso"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Corso di Studio:"
                    android:paddingRight="10dp"/>
                <TextView
                    android:id="@+id/corsoValue"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="-" />
            </LinearLayout>


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <TextView
                    android:id="@+id/dataSperamento"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Data di Superamento:"
                    android:paddingRight="10dp"/>
                <TextView
                    android:id="@+id/dataSperamentoValue"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="-" />
            </LinearLayout>


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <TextView
                    android:id="@+id/votoFinale"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Voto Finale"
                    android:paddingRight="10dp"/>
                <TextView
                    android:id="@+id/votoFinaleValue"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="-" />
            </LinearLayout>


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <TextView
                    android:id="@+id/peso"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Peso:"
                    android:paddingRight="10dp"/>
                <TextView
                    android:id="@+id/pesoValue"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="-" />
            </LinearLayout>


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <TextView
                    android:id="@+id/Valutazione"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Valutazione:"
                    android:paddingRight="10dp"/>
                <TextView
                    android:id="@+id/ValutazioneValue"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="-" />
            </LinearLayout>


        </LinearLayout>



        <!-- LISTVIEW -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:background="@color/transparent"
            android:padding="20dp">

            <ListView
                android:id="@+id/cronologia_listview"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
            </ListView>


        </LinearLayout>





    </LinearLayout>
</FrameLayout>

ТАМОЖЕННЫЙ КОД АДАПТЕРА

public class librettoCronologiaAdapter extends ArrayAdapter<DTOLibrettoCronologia> {

    Context context;
    int rand = 0;

    public librettoCronologiaAdapter(Context context, int risorsaId,
                                     List<DTOLibrettoCronologia> items) {
        super(context, risorsaId, items);
        this.context = context;
    }


    //metodo getView --> ritorna la view da inserire nella ListView

    public View getView(int position, View convertView, ViewGroup parent) {

        //controllo se c'è gia un layout
        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

        DTOLibrettoCronologia content = getItem(position);

        Toast.makeText(getContext(), "adapter", Toast.LENGTH_SHORT).show();




        return convertView;
    }

LogCat

FATAL EXCEPTION: main
                                                                    Process: design.ubris.myuni, PID: 14189
                                                                    java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getImportantForAccessibility()' on a null object reference
                                                                        at android.widget.AbsListView.obtainView(AbsListView.java:2436)
                                                                        at android.widget.ListView.makeAndAddView(ListView.java:1986)
                                                                        at android.widget.ListView.fillDown(ListView.java:709)
                                                                        at android.widget.ListView.fillFromTop(ListView.java:770)
                                                                        at android.widget.ListView.layoutChildren(ListView.java:1749)
                                                                        at android.widget.AbsListView.onLayout(AbsListView.java:2210)
                                                                        at android.view.View.layout(View.java:17702)
                                                                        at android.view.ViewGroup.layout(ViewGroup.java:5631)
                                                                        at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
                                                                        at android.view.View.layout(View.java:17702)
                                                                        at android.view.ViewGroup.layout(ViewGroup.java:5631)
                                                                        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1762)
                                                                        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1606)
                                                                        at android.widget.LinearLayout.onLayout(LinearLayout.java:1515)
                                                                        at android.view.View.layout(View.java:17702)
                                                                        at android.view.ViewGroup.layout(ViewGroup.java:5631)
                                                                        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
                                                                        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                                                                        at android.view.View.layout(View.java:17702)
                                                                        at android.view.ViewGroup.layout(ViewGroup.java:5631)
                                                                        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
                                                                        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                                                                        at android.view.View.layout(View.java:17702)
                                                                        at android.view.ViewGroup.layout(ViewGroup.java:5631)
                                                                        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1762)
                                                                        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1606)
                                                                        at android.widget.LinearLayout.onLayout(LinearLayout.java:1515)
                                                                        at android.view.View.layout(View.java:17702)
                                                                        at android.view.ViewGroup.layout(ViewGroup.java:5631)
                                                                        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
                                                                        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                                                                        at android.view.View.layout(View.java:17702)
                                                                        at android.view.ViewGroup.layout(ViewGroup.java:5631)
                                                                        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1762)
                                                                        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1606)
                                                                        at android.widget.LinearLayout.onLayout(LinearLayout.java:1515)
                                                                        at android.view.View.layout(View.java:17702)
                                                                        at android.view.ViewGroup.layout(ViewGroup.java:5631)
                                                                        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
                                                                        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                                                                        at com.android.internal.policy.DecorView.onLayout(DecorView.java:774)
                                                                        at android.view.View.layout(View.java:17702)
                                                                        at android.view.ViewGroup.layout(ViewGroup.java:5631)
                                                                        at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2519)
                                                                        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2234)
                                                                        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1372)
                                                                        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6774)
                                                                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:926)
                                                                        at android.view.Choreographer.doCallbacks(Choreographer.java:735)
                                                                        at android.view.Choreographer.doFrame(Choreographer.java:667)
                                                                        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:912)
                                                                        at android.os.Handler.handleCallback(Handler.java:761)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:98)
                                                                        at android.os.Looper.loop(Looper.java:156)
                                                                        at android.app.ActivityThread.main(ActivityThread.java:6523)
                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)

1 Ответ

0 голосов
/ 15 ноября 2018

просто добавив это в метод getView адаптера:

    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.libretto_cronologia, null);
    }

: D: D

...