ارور در برنامه نویسی اندروید در قسمت expandable list view

باسلام و عرض خسته نباشید

من در رابطه با ExpandableListView یک کدی نوشتم ولی برای یکی از خط های کدم ارور زیر را می دهد :

ListAdapter is abstract; cannot be instantiated

و کدهایم :(قسمتی که ارور دارد را مشخص کردم)

public class MainActivity extends ExpandableListActivity {

    List<String> ChildList;
    Map<String, List<String>> ParentListItems;
    ExpandableListView expandablelistView;

    // Assign Parent list items here.
    List<String> ParentList = new ArrayList<String>();
    { ParentList.add("ANDROID");
        ParentList.add("PHP");
    }

    // Assign children list element using string array.
    String[] AndroidName = { "ANDROID STUDIO","ANDROID EXAMPLES","ANDROID TUTORIALS" };
    String[] PhpName = { "XAMPP","PHPMYADMIN","MYSQL" };
    String[] ByDefalutMessage = {"Items Loading"};

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

        ParentListItems = new LinkedHashMap<String, List<String>>();

        for ( String HoldItem : ParentList) {
            if (HoldItem.equals("ANDROID")) {
                loadChild(AndroidName);
            } else if (HoldItem.equals("PHP"))
                loadChild(PhpName);

            else
                loadChild(ByDefalutMessage);

            ParentListItems.put(HoldItem, ChildList);
        }

        expandablelistView = (ExpandableListView) findViewById(R.id.expandableListView1);

//  ************************************************************************

//                              ارور مربوط به این خط است

        final ExpandableListAdapter expListAdapter = new ListAdapter(this, ParentList, ParentListItems);

// *****************************************************************************




            expandablelistView.setAdapter(expListAdapter);

        expandablelistView.setOnChildClickListener(new OnChildClickListener() {

            @Override
            public boolean onChildClick(ExpandableListView parent, View v,
                                        int groupPosition, int childPosition, long id) {
                // TODO Auto-generated method stub

                final String selected = (String) expListAdapter.getChild(
                        groupPosition, childPosition);

                // Switch case to open selected child element activity on child element selection.

                Intent intent;
                switch(selected){
                    case "ANDROID STUDIO":
                        intent = new Intent(MainActivity.this, i_1.class);
                        startActivity(intent);
                        break;

                    case "ANDROID EXAMPLES":
                        intent = new Intent(MainActivity.this, i_1.class);
                        startActivity(intent);
                        break;

                    case "ANDROID TUTORIALS":
                        intent = new Intent(MainActivity.this, i_1.class);
                        startActivity(intent);
                        break;

                    case "XAMPP":
                        intent = new Intent(MainActivity.this, i_1.class);
                        startActivity(intent);
                        break;

                    case "PHPMYADMIN":
                        intent = new Intent(MainActivity.this, i_1.class);
                        startActivity(intent);
                        break;

                    case "MYSQL":
                        intent = new Intent(MainActivity.this, i_1.class);
                        startActivity(intent);
                        break;

                }

                return true;
            }
        });
    }

    private void loadChild(String[] ParentElementsName) {
        ChildList = new ArrayList<String>();
        for (String model : ParentElementsName)
            ChildList.add(model);
    }
}

ممنون می شوم راهنایی ام کنید که چه گونه این ارور را برطرف کنم

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام ابجکت رو نتونسته نمونه اش بسازه

اینطوری تعریفش کن می گه خیلی خلاصه است...

ExpandableListAdapter listAdapter;
  listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);

دوم

اسم کلاس رو عوض کن ببین اور لپ نداشه با متد و اجزای کلاس های دیگه

http://stackoverflow.com/questions/19494572/cannot-instantiate-the-type-expandablelistadapter

http://stackoverflow.com/questions/26695664/expandablelistadapter-is-abstract-cannot-be-instantiated

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

باسلام مجدد

کارهایی که گفتید رو انجام دادم ولی باز همون رور رو می ده.

جور دیگه ای نیست که بتونم ارور رو برطرفش بکنم؟

ممنون می شوم راهنمایی ام کنید

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام،پروژه را برام می فرستی اپلود کن ببینمش

داخل اندروید استدیو هست ؟درسته

 

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

باسلام و تشکر از جواب گویی عایتان

بله داخل اندروید استودیو است.

لینک دانلود پروژم :

http://cdn.persiangig.com/download/XdXZ9G9xGG/Calorie.rar/dl

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

ممنون می شوم راهنمایی ام کنید

باتشکر

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

داخل کلاس تعریف کردنه یک جا سوتی دادی ولی نمی دونم کجا باید بیشتر سورس و بخونم...

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

باسلام و تشکر از پیگیریتان

لطفا در صورتی که به نتیجه رسیدید سورس را برایم بفرستید و یا کدهای جدید را برایم بنویسید.ممنون می شوم .

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام به خاطر تاخیر ببخشید تا دیروز خیلی گرفتار بودم.

سورسو بررسی کردم مشکل از شما نبود این سورس قدیمی بوده در توسعه ای پی ای دیگه کار نمی کنه ...

برای اپت می تونی از این سورس جدید استفاده کنی من داخل اندروید استدیو بیلدش کردم این هم عکس اش

http://s7.picofile.com/file/8252384150/sokanerrorexpanlisviewapa14858dsee.png

 

 از این اموزش که سورس هم برای دانلود گذاشته است استفاده کنید،همان طور که گفتم کار می کنه و مشکلی نداشت

http://www.journaldev.com/9942/android-expandablelistview-example-tutorial

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

باسلام و تشکر از پاسخگوییتان

ببخشید این بحث خیلی طولانی شد فقط یک سوال من دستورهای  case را باید در کجا بنویسم؟

منظورم از case

switch(){
case "sun":
کارهای مربوط به ان
break;
.
.
.
}

بازهم معذرت

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام ،خواهش می کنم خوب قسمت  مربوط به کلیک کردن یک متد دارد

  public boolean onChildClick(ExpandableListView parent, View v,
                                        int groupPosition, int childPosition, long id) {
                Toast.makeText(
                        getApplicationContext(),
                        expandableListTitle.get(groupPosition)
                                + " -> "
                                + expandableListDetail.get(
                                expandableListTitle.get(groupPosition)).get(
                                childPosition), Toast.LENGTH_SHORT
                ).show();
                return false;
            }

خوب وقتی داخل تصویر گیف انیمیشن ان را می بینی با کلیک روی هر مورد یک تکس نشان می ده تومی تونی اینجا بگی اگه فلان مورد بود یک کار کن اگه اون بود کار دیگه..

                                expandableListTitle.get(groupPosition)).get(
                                childPosition), Toast.LENGTH_SHORT

این متد چایلد پوزیشن ادرس زیر گرو کلیک شده را پرینت می کته می تونی از این در کیس استفاده کنی

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

باسلام و تشکر از سایت سکان آکادمی و stack programer

خیلی ممنونم از راهنمایی هایتان واقعا به دردم خورد.

بازهم تشکر

online-support-icon