我似乎在为listview创建适配器时遇到问题,以便从另一个.xml类中显示项目(标题上的东西)。
有人可以给我一个示例或提示我应该使用哪个适配器 使用?在ListView上添加项目xml项目。
无论如何我都没有生成任何新物品。我只是使用来自另一个xml的每个现有项目。
这是我希望将其他xml转换为listview的图像。
这样做的原因是因为将来我想在新列表中添加项目。
答案 0 :(得分:0)
您需要使用CustomAdapter扩展BaseAdapter,如下面的代码和链接 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html
public class List14 extends ListActivity {
private static class EfficientAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private Bitmap mIcon1;
private Bitmap mIcon2;
public EfficientAdapter(Context context) {
// Cache the LayoutInflate to avoid asking for a new one each time.
mInflater = LayoutInflater.from(context);
// Icons bound to the rows.
mIcon1 = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon48x48_1);
mIcon2 = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon48x48_2);
}
/**
* The number of items in the list is determined by the number of speeches
* in our array.
*
* @see android.widget.ListAdapter#getCount()
*/
public int getCount() {
return DATA.length;
}
/**
* Since the data comes from an array, just returning the index is
* sufficent to get at the data. If we were using a more complex data
* structure, we would return whatever object represents one row in the
* list.
*
* @see android.widget.ListAdapter#getItem(int)
*/
public Object getItem(int position) {
return position;
}
/**
* Use the array index as a unique id.
*
* @see android.widget.ListAdapter#getItemId(int)
*/
public long getItemId(int position) {
return position;
}
/**
* Make a view to hold each row.
*
* @see android.widget.ListAdapter#getView(int, android.view.View,
* android.view.ViewGroup)
*/
public View getView(int position, View convertView, ViewGroup parent) {
// A ViewHolder keeps references to children views to avoid unneccessary calls
// to findViewById() on each row.
ViewHolder holder;
// When convertView is not null, we can reuse it directly, there is no need
// to reinflate it. We only inflate a new View when the convertView supplied
// by ListView is null.
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item_icon_text, null);
// Creates a ViewHolder and store references to the two children views
// we want to bind data to.
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.text);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);
} else {
// Get the ViewHolder back to get fast access to the TextView
// and the ImageView.
holder = (ViewHolder) convertView.getTag();
}
// Bind the data efficiently with the holder.
holder.text.setText(DATA[position]);
holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);
return convertView;
}
static class ViewHolder {
TextView text;
ImageView icon;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new EfficientAdapter(this));
}
private static final String[] DATA = Cheeses.sCheeseStrings;
}
答案 1 :(得分:0)
主要思想是为列表视图中的单个项目创建XML布局。
然后创建一个CustomAdapter以附加到ListView。使用getView(),您可以初始化其中的单行数据/事件。你可以找到实现相同的各种样品..
答案 2 :(得分:0)
现在所有的答案都没有一致性。
这是一个更简单的解决方案或几乎是它的实际操作过程。
使用GUI设置开始构建线性布局,确保它们正确排列。我的方向是垂直的
完成所有操作后,将所有内容从上到下复制并粘贴到记事本中,然后移除。
现在在相对布局上创建。宽度和高度=匹配父级。方向垂直。
现在添加一个带有wrap_content的Scrollview,用于高度和宽度。然后粘贴2号任务中的所有内容。
在那里你可以看到整个视图的整个滚动视图。