如何在没有XML的情况下通过Adapter在Listview中添加图标图像



我想在ListView中的每个项目位置添加图标。我在ListView中添加了文本,但当尝试通过videoList.add(R.drawable.mi_icon, "Genel Bilgiler");添加图标时,我的应用程序崩溃了。知道吗?

Genel.java:

MediaController mediaController;
VideoView videoview;
ListView listView;
ArrayList<String> videoList;
ArrayAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_genel);
final VideoView videoview = findViewById(R.id.Videogenel);
listView = (ListView) findViewById(R.id.lgvideo);
videoList= new ArrayList<>();
videoList.add("Genel Bilgiler");

ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,videoList);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position){
case 0:
videoview.setVideoPath("/storage/A6D3-E544/videos/genel1.mp4");
break;
}
final MediaController mediacontroller = new MediaController(Genel.this);
mediacontroller.setAnchorView(videoview);
videoview.setMediaController(mediacontroller);
videoview.requestFocus();

您正试图将两项添加到字符串列表List<String>中。这是一个体系结构问题。

如果需要字符串和资源ID之间的相关性,可以使用Map。

private final Map<String, Int> videoList = new HashMap<>();
videoList.put("Genel Bilgiler", R.drawable.mi_icon);

然而,创建Video.class:的POJO似乎更合适

public class Video() {
private final String title;
private final int image;
public Video(String title, int image) {
this.title = title;
this.image = image;
}
// getter methods
}

并将其传递给阵列适配器

private final List<Video> videoList = new ArrayList<>();
videoList.add(new Video("Genel Bilgiler", R.drawable.mi_icon));
ArrayAdapter<Video> adapter=new ArrayAdapter<Video>

最新更新