android - 使用 listView,但是在通过 adapter将数据存进去时,app 发生闪退?
天蓬老师
天蓬老师 2017-04-18 09:18:50
0
3
803
  1. MainActivity 如下:

package cn.han.listview01;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

    private ListView lv_music;

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

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

        String arr1[] = {"1111111111","222222222222","3333333333"};
        ArrayAdapter adapter1 = new ArrayAdapter<>(this,R.layout.array_item,arr1);
        list1.setAdapter(adapter1);



    }


}

2.app 一进去页面

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="cn.han.listview01.MainActivity">

    <ListView
        android:layout_width="368dp"
        android:id="@+id/list1"
        android:entries="@array/books"
        android:pider="#f00"
        android:piderHeight="2px"
        android:padding="10dp"
        android:layout_height="wrap_content" />



</android.support.constraint.ConstraintLayout>

3.单个item 页面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textSize="24dp"
        android:padding="10dp"
        android:shadowColor="#f0f"
        android:shadowDx="4"
        android:shadowDy="4"
        android:shadowRadius="2"
        android:text="TextView" />

</LinearLayout>

现在控制台提示 03-30 16:32:56.357 15648-15648/cn.han.listview01 E/ArrayAdapter: You must supply a resource ID for a TextView,但是我在 adapter 中是添加了 单个item的 xml 布局的嘛,有谁知道这个怎么回事吗?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(3)
黄舟

Vous devez spécifier la chaîne pour remplir ce contrôle, utilisez ce constructeur

ArrayAdapter (Context context, 
                int resource, 
                int textViewResourceId, 
                List<T> objects)

Le code est le suivant :

ArrayAdapter adapter1 = new ArrayAdapter<>(this,R.layout.array_item,R.id.textView,arr1);
伊谢尔伦

Vous pouvez également utiliser votre structure, mais R.layout.array_item doit utiliser textView comme nœud racine

黄舟

Lorsque vous utilisez Listview, si vous souhaitez utiliser une mise en page personnalisée, vous devez écrire un adaptateur, sauf si votre mise en page personnalisée ne contient qu'une seule Textview

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal