Cannot resolve constructor ArrayAdapter (saveourcar.soc.Insurance,int,int, java.lang.String[],java.lang.Integer[])

Craig Gallagher

I have made an application that has a list of insurance companies using a listView. The listView is populated using an array. I can currently search through this list using a filter. However beside each item in the listView I want an image, I can do this using CustomListAdapter adapter=new CustomListAdapter(this, itemname, imgid); however this stops my search from working so I'm trying to implement it like this adapter = new ArrayAdapter<String>(this, R.layout.mylist, R.id.textView1, itemname, imgid); which is then throwing a Cannot resolve constructor ArrayAdapter (saveourcar.soc.Insurance,int,int, java.lang.String[],java.lang.Integer[]) error. Is there anyway I can have my imgid included in my ArrayAdapter.

My Code is as fallows

Insurance.java

    public class Insurance extends AppCompatActivity {
        ListView list;
        ArrayList<String> listItems;
        ArrayAdapter<String> adapter;
        EditText inputSearch;
        String[] itemname ={
                "123.ie",
                "AA",
                "Acorn",
                "Admiral",
                "AIG",
                "Allianz",
                "Aviva",
                "Auto Direct",
                "AXA",
                "Chill",
                "Churchill",
                "CoverBox",
                "DirectChoice",
                "FBD",




        };

        Integer[] imgid= {
                R.drawable.onetwothree,
                R.drawable.aa,
                R.drawable.acorn,
                R.drawable.admiral,
                R.drawable.aig,
                R.drawable.allianz,
                R.drawable.aviva,
                R.drawable.autodirect,
                R.drawable.axa,
                R.drawable.chill,
                R.drawable.churchill,
                R.drawable.coverbox,
                R.drawable.directchoice,
                R.drawable.fbd,


        };
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_insurance);
            adapter = new ArrayAdapter<String>(this, R.layout.mylist, R.id.textView1, itemname, imgid);
            CustomListAdapter adapter=new CustomListAdapter(this, itemname, imgid);
            list=(ListView)findViewById(R.id.list);
            inputSearch = (EditText) findViewById(R.id.itemtext);
            list.setAdapter(adapter);


            inputSearch.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                    // When user changed the Text
                    Insurance.this.adapter.getFilter().filter(cs);


                }

                @Override
                public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                                              int arg3) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable arg0) {
                    // TODO Auto-generated method stub
                }
            });

Insurance.xml

    <EditText
        android:layout_width="400dp"
        android:layout_height="60dp"
        android:id="@+id/itemtext"
        android:layout_marginBottom="50dp"

/>
    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="107dp">
    </ListView>

myList.xml

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="60dp"
    android:layout_weight="2"
    >
    <ImageView
        android:id="@+id/icon"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:padding="5dp"
        />
</LinearLayout>
<LinearLayout
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="6"
    android:orientation="vertical"  >

    <TextView
        android:id="@+id/item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"
        android:padding="2dp"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#FFFFFF"
        />


    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:text="TextView"
        />
</LinearLayout>
<LinearLayout
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:orientation="vertical"
    >
<ImageView
    android:id="@+id/imageView2"
    android:layout_width="20dp"
    android:layout_height="50dp"
    android:layout_alignParentRight="true"
    android:src="@drawable/nextarrow"
    android:layout_marginTop="6dp" />

Edit

If I take away imgid from my ArrayAdapter i does not filter my listView so I tried to add R.layout.mylistto my CustomListAdapter however when I try and add R.layout.myList to my CustomListAdapter I get the fallowing error

Error:(67, 35) error: constructor CustomListAdapter in class CustomListAdapter cannot be applied to given types;
required: Activity,String[],Integer[]
found: Insurance,String[],Integer[],int
reason: actual and formal argument lists differ in length
George Mulligan

You should use your CustomListAdapter for this since you need to show both a name and image in each row. One thing that you should do to make this easier is combine the image and name into a single object and update the CustomListAdapter to work with a list of that new object instead of two separate arrays. Otherwise you will end up having to write a custom filter and filter both arrays yourself.

Also, create a toString() method on that new object that returns the name. The ArrayAdapter filter by default compares the String you enter to the toString() of each object to know which records to keep and which to filter out. This will fix filtering on the CustomListAdapter.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Cannot resolve constructor ArrayAdapter (saveourcar.soc.Insurance,int,int, java.lang.String[],java.lang.Integer[])

From Dev

cannot resolve constructor ArrayAdapter(android.content.Context,int,java.lang.String[],java.lang.String,java.lang.String)

From Dev

how to resolve java.lang.string cannot be cast to java.lang.integer android with xml parser

From Dev

java.lang.Integer cannot be cast to java.lang.String

From Dev

why am I getting this error "cannot resolve method 'getSharedPreferences (Java.lang.String.int)"

From Dev

Cannot resolve method 'makeText(Data.DataBaseHandler, java.lang.String, int)'

From Dev

Passing java.lang.Long to Integer constructor

From Dev

serverError: class java.lang.ClassCastException java.lang.Integer cannot be cast to java.lang.String

From Dev

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer in tableau?

From Dev

How to solve this error "cannot resolve method 'addData(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)'"?

From Dev

Cannot resolve constructor ArrayAdapter

From Dev

java.lang.Integer cannot be cast to java.lang.Long

From Dev

JAVA: Incompatible types: int cannot be converted to java.lang.String

From Dev

Cannot resolve method put(java.lang.string, java.lang.string)

From Dev

Cannot resolve constructor 'Intent(xxxx.xx.java.lang.thread.Class<com.practice.MainActivity>)'

From Dev

Cannot resolve method 'get(java.lang.String)'

From Dev

android cannot resolve method 'startsWith(java.lang.string)'

From Dev

How to resolve ClassCastException: java.lang.String cannot be cast exception

From Dev

java.lang.Object cannot be converted to int

From Dev

JAVA java.lang.reflect.Constructor cannot call Date constructor

From Dev

JAVA java.lang.reflect.Constructor cannot call Date constructor

From Dev

Hibernate : java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double

From Dev

sharedPref.getInt: java.lang.String cannot be cast to java.lang.Integer

From Java

Cannot cast class java.lang.Integer to class java.lang.String

From Dev

Java reflection: constructor for primitive int causes: java.lang.NoSuchMethodException: int.<init>(int)

From Dev

Java reflection: constructor for primitive int causes: java.lang.NoSuchMethodException: int.<init>(int)

From Dev

ArrayAdapter causing java.lang.NullPointerException

From Dev

java.lang.NullPointerException in customize ArrayAdapter in android

From Dev

How to fix: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Integer

Related Related

  1. 1

    Cannot resolve constructor ArrayAdapter (saveourcar.soc.Insurance,int,int, java.lang.String[],java.lang.Integer[])

  2. 2

    cannot resolve constructor ArrayAdapter(android.content.Context,int,java.lang.String[],java.lang.String,java.lang.String)

  3. 3

    how to resolve java.lang.string cannot be cast to java.lang.integer android with xml parser

  4. 4

    java.lang.Integer cannot be cast to java.lang.String

  5. 5

    why am I getting this error "cannot resolve method 'getSharedPreferences (Java.lang.String.int)"

  6. 6

    Cannot resolve method 'makeText(Data.DataBaseHandler, java.lang.String, int)'

  7. 7

    Passing java.lang.Long to Integer constructor

  8. 8

    serverError: class java.lang.ClassCastException java.lang.Integer cannot be cast to java.lang.String

  9. 9

    java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer in tableau?

  10. 10

    How to solve this error "cannot resolve method 'addData(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)'"?

  11. 11

    Cannot resolve constructor ArrayAdapter

  12. 12

    java.lang.Integer cannot be cast to java.lang.Long

  13. 13

    JAVA: Incompatible types: int cannot be converted to java.lang.String

  14. 14

    Cannot resolve method put(java.lang.string, java.lang.string)

  15. 15

    Cannot resolve constructor 'Intent(xxxx.xx.java.lang.thread.Class<com.practice.MainActivity>)'

  16. 16

    Cannot resolve method 'get(java.lang.String)'

  17. 17

    android cannot resolve method 'startsWith(java.lang.string)'

  18. 18

    How to resolve ClassCastException: java.lang.String cannot be cast exception

  19. 19

    java.lang.Object cannot be converted to int

  20. 20

    JAVA java.lang.reflect.Constructor cannot call Date constructor

  21. 21

    JAVA java.lang.reflect.Constructor cannot call Date constructor

  22. 22

    Hibernate : java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double

  23. 23

    sharedPref.getInt: java.lang.String cannot be cast to java.lang.Integer

  24. 24

    Cannot cast class java.lang.Integer to class java.lang.String

  25. 25

    Java reflection: constructor for primitive int causes: java.lang.NoSuchMethodException: int.<init>(int)

  26. 26

    Java reflection: constructor for primitive int causes: java.lang.NoSuchMethodException: int.<init>(int)

  27. 27

    ArrayAdapter causing java.lang.NullPointerException

  28. 28

    java.lang.NullPointerException in customize ArrayAdapter in android

  29. 29

    How to fix: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Integer

HotTag

Archive