android调用clone simple_list_item_1

时间:2012-07-20 06:38:33

标签: android listview android-layout

我有一个名为simple_list_item_1的列表, 现在我想自定义这个单元格,包括一个图像, 但是我在调​​用它时遇到了问题

这是工作代码:

@Override
    public void onCreate(Bundle savedInstanceState) {   //mira el life cycle, aqui y el de createView!
        super.onCreate(savedInstanceState);


        // la manera con sencillo
         ListAdapter myListAdapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, title); //using Android own simple 

        setListAdapter(myListAdapter);


    }

但现在,我需要打电话,克隆simple_list_item_1

已经在我的布局文件夹中,克隆的名称是simple_list_item.xml

那么如何调用我的克隆列表项?

非常感谢!

2 个答案:

答案 0 :(得分:1)

android.R.layout.simple_list_item_1更改为R.layout.simple_list_item_1

答案 1 :(得分:1)

您应该创建从ArrayAdapter扩展的类,并为您的项目充气并在之后填充它。如果您需要,我可以提供一些代码示例。

<强> UPD:

例如:

public class MyAdapter extends ArrayAdapter<Object> {

    public MyAdapter(Context context, int textViewResourceId,
            List<Object> objects) {
        super(context, textViewResourceId, objects);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater infalter = (LayoutInflater) getContext()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = infalter.inflate(YOUR_LAYOUT_ITEM, parent, false);
        //v.findViewById(ID_YOUR_IMAGE_VIEW).setDrawable.... and so on...

        return v;
    }

它是最简单的代码。在实际项目中,您应该使用一些技巧来获得像holder一样的性能并使用convertView。

当然,您应该在Activity中更改代码,如下所示:

ListView listView;   
ArrayList<Object> objects;

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

        objects = new ArrayList<Object>();
        listView = findViewById(ID_LISTVIEW_IN_ACTIVITY);
        MyAdapter myListAdapter = new MyAdapter<Object>(getActivity(),
                YOUR_LAYOUT_ITEM, objects);

        listView.setAdapter(myListAdapter);
    }
祝你好运!