Я хочу создать список в 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);
}
}
Попробуй это
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 объявлен как Аннотация. Это нет, предназначенный для непосредственного создания через new()
.
См. здесь, чтобы узнать, как на самом деле использовать этот класс!
И обычный совет начинающим Android-программистам: сначала немного изучите основы Java. Понять, что на самом деле означает Аннотация, очень просто.
Поэтому вместо «AdapterView» мне следовало написать «ArrayAdapter<String>». Спасибо, это сработало для меня!