我有一个名为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
那么如何调用我的克隆列表项?
非常感谢!
答案 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);
}
祝你好运!