即时呼叫我的布局并为其设置项目,但getview()不返回任何内容。Android getview()不返回
我的主类:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = inflater
.inflate(R.layout.grid_view_item_layout, null);
holder = new ViewHolder();
holder.image = (ImageView) convertView
.findViewById(R.id.selection_item_image);
holder.text = (TextView) convertView
.findViewById(R.id.selection_item_text);
convertView.setTag(holder);
//holder.image.setPadding(8, 8, 8, 8);
} else {
holder = (ViewHolder) convertView.getTag();
}
DraggableRelativeLayout layout = (DraggableRelativeLayout) convertView;
convertView.setOnLongClickListener(this);
convertView.setOnClickListener(this);
LauncherGridItem item = getItems().get(position);
layout.setItem(item);
layout.setDragListener(this);
// holder.image.setOnLongClickListener(this);
Drawable d = holder.image.getDrawable();
// if (d != null) {
d.setCallback(null);
// }
holder.image.setImageDrawable(null);
if (!item.getUrl().startsWith("http")) {
try {
holder.image.setImageDrawable(context.getResources()
.getDrawable(
context.getResources().getIdentifier(
context.getApplicationContext()
.getPackageName()
+ ":drawable/" + item.getUrl(),
null, null)));
} catch (NotFoundException e) {
holder.image.setImageResource(android.R.drawable.ic_menu_view);
}
} else {
// Image cached = images.get(position);
if(item.getImage() == null)
{
holder.image.setImageResource(R.drawable.avatar);
} else {
holder.image.setScaleType(ScaleType.CENTER_INSIDE);
holder.image.setImageBitmap(item.getImage());
}
}
}
holder.text.setText(item.getCaption());
layout.setImage(holder.image);
layout.setText(holder.text);
layout.setItem(item);
layout.canDelete(item.canDelete());
return convertView;
}
我甚至检查if语句和程序的项目是有效的和:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.MymainView);
grid = (GridView) findViewById(R.id.grid);
if (getScreenOrientation() == 1)
grid.setNumColumns(3);
else
grid.setNumColumns(4);
items = new ArrayList<LauncherGridItem>();
Intent intent = new Intent(this, Activity2.class);
intent.putExtra("Param1", "Child Activity");
items.add(new LauncherGridItem("ic_launcher", "Item 1",
intent));
adapter = new LauncherGridAdapter(this, items, grid, dragLayer,
deleteZone);
adapter.setPersistenceToken("MyLauncherGrid");
adapter.setDragListener(this);
adapter.setEditable(true);
grid.setAdapter(adapter);
而且我LauncherGridAdapter,getview()的文件部分不为空。 香港专业教育学院还增加了这些,但仍然没有在GridView控件:
我想这个问题是“grid_view_item_layout”根本
显示出这是“主”的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical" android:background="#CCCCCC">
<com.myapp.ui.drag.DragLayer
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
android:id="@+id/drag_layer" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_above="@+id/handle">
<GridView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="65dip"
android:background="@color/BlanchedAlmond"
android:numColumns="3"
android:scrollbars="vertical" />
<com.myapp.ui.drag.DeleteZone
android:id="@+id/delete_zone_view" android:layout_width="fill_parent"
android:layout_height="60dp" android:layout_alignParentBottom="true"
android:layout_centerInParent="true" android:background="@drawable/delete_zone_bg"
android:visibility="gone">
<ImageView android:layout_width="60dp"
android:layout_height="60dp" android:layout_centerInParent="true"
android:src="@drawable/trashcan" />
</com.myapp.ui.drag.DeleteZone>
</com.myapp.ui.drag.DragLayer>
</LinearLayout>
和这是grid_view_item_layout布局:
<?xml version="1.0" encoding="utf-8"?>
<com.myapp.ui.drag.DraggableRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/CadetBlue"
android:orientation="vertical" >
<ImageView android:id="@+id/selection_item_image" android:scaleType="centerInside"
android:src="@drawable/avatar" android:layout_width="wrap_content"
android:layout_height="60dip" android:layout_centerHorizontal="true" />
<TextView android:layout_width="wrap_content" android:id="@+id/selection_item_text"
android:maxLines="1" android:lines="1" android:scrollHorizontally="true" android:ellipsize="end"
android:layout_height="wrap_content" android:textColor="@android:color/black"
android:text="(Selection Text)" android:layout_below="@+id/selection_item_image" android:layout_centerHorizontal="true"
></TextView>
</com.myapp.ui.drag.DraggableRelativeLayout>
im using plusgrid GridView之间移动项目的布局。该函数在源项目上工作,但当我尝试在我的下发布时,没有错误发生,再加上没有gridview。
如果我更改getview()的最后一行返回convertView;返回布局;仍然没有发生。
您是否在'LauncherGridAdapter'中扩展了'BaseAdapter'? –
是的,这里是代码的开始行: 公共类LauncherGridAdapter延伸BaseAdapter实现 \t \t OnLongClickListener,OnClickListener,DragListener, \t \t DeleteLaunchItemHandler { –