Android自定义列表视图

时间:2016-11-10 11:56:18

标签: android listview android-custom-view

我已经尝试了几种方法教程,没有人能够解决我的概率。我正在尝试它正常2天。我的问题是,当我运行自定义列表视图程序时,它显示错误。它是 Error

enter image description here

MainActivity:

public class MainActivity extends Activity {

    ListView list;

    String[]name={

            "Al Fresco",
            "Appeliano",
            "BFC",
            "Mr. Burger",
            "Grind House",
            "Comic Cafe",
            "cafe 5Six7",
            "Cafe Cheeze Panic"
    };


    Integer[]imgid={

            R.drawable.alfresco,
            R.drawable.appeliano,
            R.drawable.bfc,
            R.drawable.burger,
            R.drawable.tbk,
            R.drawable.comiccafe,
            R.drawable.cafefivesixseven,
            R.drawable.cafecheezepanic

    };

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

        CustomAdapter adapter=new CustomAdapter(MainActivity.this,name,imgid);

        list=(ListView)findViewById(R.id.list);
        list.setAdapter(adapter);

    }
}

and customadapter:

public class CustomAdapter extends ArrayAdapter<String> {

    private final Activity context;
    private final String[] name;
    private final Integer[]imgid;

    public CustomAdapter(Activity context,String[] name, Integer[] imgid) {
        super(context,R.layout.mylist, name);
        this.context = context;
        this.name = name;
        this.imgid = imgid;
    }

    @Override
    public View getView(int position, View view, ViewGroup parent) {
        LayoutInflater inflater=context.getLayoutInflater();
        View rowView=inflater.inflate(R.layout.mylist,null,true);
        TextView txtTitle= (TextView) rowView.findViewById(R.id.item_name);
        ImageView imageView= (ImageView) rowView.findViewById(R.id.list_item);

        txtTitle.setText(name[position]);
        imageView.setImageResource(imgid[position]);

        return rowView;

    }
}

2 个答案:

答案 0 :(得分:0)

由于您未提供更多信息,因此您提供了详细信息 第一个是appleiano.png图像是导致此问题的图像。暂时尝试使用另一个图像,例如应用程序图标,看看项目是否构建。

这是因为在drawable中添加了一个像(.jpg)这样的扩展名并且您已将其更改或保存为.png格式的图像(在不使用编辑器工具的情况下手动更改图像格式时会发生此错误) 。使用AAPT(Android资产包装工具)编译资源包时,Android工作室会抛出错误,所以您需要做的就是使用一些图像编辑器工具,例如&#34; gimp或paint&#34;相应地保存扩展名。一切都完成后重建您的项目。

提示:如果你在mac os上,你可以打开终端并从images文件夹中运行以下命令:&#39; sips -s format png * .png --out。&#39;它会将带有.png sufix的所有文件正确转换为真正的PNG文件

答案 1 :(得分:0)

我认为您遇到的问题与链接中提到的相同。尝试这个链接中给出的解决方案。

Execution failed for task 'app:mergeDebugResources' Crunching Cruncher....png failed