0

我试过一切。我通过复制粘贴示例here from developer website进行测试,但仍然没有工作。它只是显示Gridview应该出现的空白区域。这是我的代码。
EnterApp.javaandroid gridview不能在我的模拟器中工作:不显示它,虽然没有显示错误

package com.locationremind.app; 

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.Window; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.GridView; 
import android.widget.Toast; 

public class EnterApp extends Activity { 
    Context con; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     con=this; 
     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.enterapp); 
     GridView gridView=(GridView) findViewById(R.id.grid_menu); 
     gridView.setAdapter(new MyAdapter(this)); 
     gridView.setOnItemClickListener(new OnItemClickListener(){ 

      @Override 
      public void onItemClick(AdapterView<?> parent, View v, int position, 
        long id) { 
       // TODO Auto-generated method stub 
       if(position==0) 
        startActivity(new Intent(getBaseContext(),LocationReminderActivity.class)); 
       else 
        Toast.makeText(getBaseContext(), "Item"+position+"not Allocated yet",Toast.LENGTH_SHORT).show(); 

      } 

     }); 
    } 


} 

MyAdapter.java

package com.locationremind.app; 

import android.content.Context; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.GridView; 
import android.widget.TextView; 

public class MyAdapter extends BaseAdapter { 
    Context context; 

    public MyAdapter(Context c) { 
     context = c; 

    } 
    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public Object getItem(int pos) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     TextView tv; 
     /*ImageView imageView; 
     WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
     Display display = wm.getDefaultDisplay();*/ 
     if(convertView==null) 
     {  
      tv=new TextView(context); 
      tv.setLayoutParams(new GridView.LayoutParams(85,85)); 

     } 
     else 
      tv=(TextView)convertView; 
     tv.setBackgroundResource(thumbsID[position]); 
     tv.setMinimumHeight(128); 
     tv.setMinimumWidth(128); 
     tv.setLayoutParams(new GridView.LayoutParams(85,85)); 
     tv.setText(text[position]); 
     return tv; 
    } 

    private Integer[] thumbsID={R.drawable.gridview_icon,R.drawable.icn}; 
    private String[] text={"Select Location Using GPS","Select Location Using Wi-Fi", 
          "Select Location Using Network","Settings"}; 
} 

enterapp.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:id="@+id/Rlayout" 
    > 
    <ImageView 
     android:id="@+id/img_icon" 
     android:src="@drawable/android" 
     android:maxWidth="80dp" 
     android:maxHeight="80dp" 
     android:layout_width="64px" 
     android:layout_height="64px" 
     android:contentDescription="logo-icon"/> 
    <GridView 
     android:id="@+id/grid_menu" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:columnWidth="90dp" 
     android:numColumns="auto_fit" 
     android:verticalSpacing="10dp" 
     android:horizontalSpacing="10dp" 
     android:stretchMode="columnWidth" 
     android:gravity="center"/> 

</LinearLayout> 

回答

1

你的错误就在于你的适配器

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return 0; 
} 

说你没有任何项目显示,这就是为什么它没有显示任何元素。

解决这个改变您的getCount()这样

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return thumbsID.length; 
} 
+0

是的工作!非常感谢!在五分钟内感谢! – AbdulHannan 2012-08-10 06:17:32

0

getCount将返回0,这就是为什么!

public int getCount() { 
     // TODO Auto-generated method stub 
     return text.lenght; 
    } 
0

你的价值不是来的,因为在你的适配器getCount()方法返回0.把一些值。或者如果你把这个列表作为参数放在适配器中,你可以把这个列表大小作为getCount()的返回值。

+0

是的。谢谢! – AbdulHannan 2012-08-10 06:25:59

相关问题