Создайте список в студии Android, но постоянно получайте эту ошибку «Просмотр адаптера является абстрактным, не может быть инициирован»

Я хочу создать список в Android Studio, но постоянно получаю сообщение об ошибке «Просмотр адаптера является абстрактным, не может быть инициирован» в этой строке.

AdapterView arrayAdapter = new AdapterView (this, android.R.layout.simple_list_item_1, family );

Как я могу решить эту проблему?

Код здесь:

package com.example.mylist;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

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

        ListView MyList = (ListView) findViewById(R.id.MyList);

        ArrayList family = new ArrayList();

        family.add("Abc");
        family.add("Def");
        family.add("Ghi");

        AdapterView arrayAdapter = new AdapterView (this, android.R.layout.simple_list_item_1, family );

        MyList.setAdapter((ListAdapter) arrayAdapter);
    }
}

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
29
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуй это

    ArrayList<String> family = new ArrayList<String>();
    family.add("Abc");
    family.add("Def");
    family.add("Ghi");

    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, 
    android.R.layout.simple_list_item_1,family );
    MyList.setAdapter(arrayAdapter); 

Поэтому вместо «AdapterView» мне следовало написать «ArrayAdapter<String>». Спасибо, это сработало для меня!

Sanjit Prasad 25.05.2019 15:22

Работает как задумано: этот класс AdapterView объявлен как Аннотация. Это нет, предназначенный для непосредственного создания через new().

См. здесь, чтобы узнать, как на самом деле использовать этот класс!

И обычный совет начинающим Android-программистам: сначала немного изучите основы Java. Понять, что на самом деле означает Аннотация, очень просто.

Другие вопросы по теме