即時呼叫我的佈局併爲其設置項目,但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 { –