使用 ArrayAdapter 在 ListView 中仅显示图像 return black Activity?

Display only images in ListView using ArrayAdapter return black Activity?

我只想向 ListView 添加图像,我创建了 Activity 和 ArrayAdapter,如下所示

Activity 和 ArrayAdapter 类

 public class Main extends ActionBarActivity{
    ListView icons ;
    ArrayList <Drawable> items ;
    Adapter adapter ;
    @Override
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        setContentView(R.layout.main);
        icons = (ListView) findViewById(R.id.icon);
        items = new ArrayList<Drawable>() { };
        items.add(getResources().getDrawable(R.drawable.r));
        items.add(getResources().getDrawable(R.drawable.b));
        items.add(getResources().getDrawable(R.drawable.g));

        adapter = new Adapter(this,0,items);
        icons.setAdapter(adapter);
    }
}
class Adapter extends ArrayAdapter<Drawable>{
    ArrayList<Drawable> items ;
    ImageView image ;

    public Adapter(Context c,int resources,ArrayList<Drawable>list){
        super(c,resources,list);
        this.items = list ;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.images, parent, false);
        }
        image= (ImageView) convertView.findViewById(R.id.image);
        image.setBackground(items.get(position));
        return convertView;

    }
}

images.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
    android:layout_width="match_parent"
    android:layout_height="350dp"
    android:id="@+id/images" />

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/icon"
    android:layout_gravity="center_horizontal" />

我得到的是白色黑色 Activity,这段代码有什么问题?

提前致谢!

更改这些行:

image= (ImageView) convertView.findViewById(R.id.image);
image.setBackground(items.get(position));

image= (ImageView) convertView.findViewById(R.id.images);
image.setImageDrawable(items.get(position));

并改变

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/icon"
    android:layout_gravity="center_horizontal" />

<ListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/icon"
    android:layout_gravity="center_horizontal" />

从 activity 的 onCreate 中删除第二个参数: 使用

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //...
}

而不是

@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
    super.onCreate(savedInstanceState, persistentState);
    //...
}

此外,您发现错误的 ImageView id,请将 Adapter 的 getView() 中的 R.id.image 替换为 R.id.images。并将 setBackground() 更改为 setImageDrawable()