Tecnologia do Blogger.
RSS

[androidbrasil-dev] Problemas com GridView

ola

            estou desenvolvendo uma tela onde estou colocando um grid e neste grid tem diveras linhas e cada linha representa um item do menu.

            Nos meus testes em um LG P350 percebi que existe um grande tempo de resposta entre o momento que eu clico na imagem que deveria chamar uma nova activity e o tempo que de fato a activity é chamada.

Mesmo chamando uma actitivy que so mostra um Hello World o tempo de resposta é bem lento.

Se alguem tiver um exemplo de Grid legal e queira compartilhar fico muito grato.


Estou fazendo algo de errado?
Segue abaixo o codigo.

, e segue o codigo

<MENU.XML>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
 
    <GridView 
        android:layout_height="wrap_content" 
        android:id="@+id/gridView1" 
        android:layout_width="wrap_content" 
        android:numColumns="auto_fit" 
        android:horizontalSpacing="4dp" 
        android:verticalSpacing="4dp"> 
    </GridView> 
    <RelativeLayout
        android:id="@+id/publicidade"
        android:layout_width="fill_parent"
        android:layout_height="68dip"
        android:gravity="bottom"
        android:orientation="vertical" >
    </RelativeLayout>
   
</LinearLayout> 


para cada linha do meu grid eu estou chamando outro layout
<MenuItem.xml>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    android:id="@+id/relativeLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"      
    android:padding="5dp"> 
 
   
    <ImageView 
        android:layout_height="80dp" 
        android:id="@+id/imagemmenu" 
        android:layout_width="80dp" 
        android:src="@drawable/flamengo" 
        android:layout_alignParentTop="true" 
        android:layout_centerHorizontal="true"> 
    </ImageView> 
 
</RelativeLayout> 


public class Menu extends Activity {
    /** Called when the activity is first created. */

    private static int CATEGORIA_NOTICIAS =0;
    private static int CATEGORIA_TITULOS =3;
    private static int CATEGORIA_HISTORIA =4;

   
    private MenuAdapter mAdapter;
    private ArrayList<String> nomes;
    private ArrayList<Integer> imagens;
   
    private GridView gridView;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu);
        prepareList();
        mAdapter = new MenuAdapter(this,nomes, imagens);   
        gridView = (GridView) findViewById(R.id.gridView1);
        gridView.setAdapter(mAdapter);      
   
        gridView.setOnItemClickListener(new OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                    long arg3) {
                if (position == CATEGORIA_NOTICIAS){
                    Log.i("TodoSolucoes","Menu " + new Date());
                    Intent mainIntent = new Intent(getApplicationContext(),
                            Noticias.class);
                    startActivity(mainIntent);
                }
                else if (position == CATEGORIA_TITULOS){
                    Intent mainIntent = new Intent(getApplicationContext(),
                            Titulos.class);
                    startActivity(mainIntent);
                }
                else if (position == CATEGORIA_HISTORIA){
                    Intent mainIntent = new Intent(getApplicationContext(),
                            Historia.class);
                    startActivity(mainIntent);
                }
               
            }
        });       
    }
   
    public void prepareList()
    {
          nomes = new ArrayList<String>();
          nomes.add("");
          nomes.add("");
          nomes.add("");
          nomes.add("");
          nomes.add("");
          nomes.add("");
          nomes.add("");
         
          imagens = new ArrayList<Integer>();
          imagens.add(R.drawable.noticias);
          imagens.add(R.drawable.calendario);
          imagens.add(R.drawable.jogadores);
          imagens.add(R.drawable.classificacao);
          imagens.add(R.drawable.facebook);
          imagens.add(R.drawable.historia);
          imagens.add(R.drawable.twitter);

    }
 
MenuAdapter.java

public class MenuAdapter extends BaseAdapter {
    private ArrayList<String> nomes;
    private ArrayList<Integer> imagens;
    private Activity activity;

    public MenuAdapter(Activity activity, ArrayList<String> nomes,
            ArrayList<Integer> imagens) {
        super();
        this.nomes = nomes;
        this.imagens = imagens;
       
        this.activity = activity;
    }

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

    @Override
    public String getItem(int position) {
        // TODO Auto-generated method stub
        return nomes.get(position);
    }

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

    public static class ViewHolder {
        public ImageView imgViewFlag;

        public TextView txtViewTitle;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder view;
        LayoutInflater inflator = activity.getLayoutInflater();

        if (convertView == null) {
            view = new ViewHolder();
            convertView = inflator.inflate(R.layout.menulink, null);

            view.imgViewFlag = (ImageView) convertView
                    .findViewById(R.id.imagemmenu);
            convertView.setTag(view);
        } else {
            view = (ViewHolder) convertView.getTag();
        }
        view.txtViewTitle.setText(nomes.get(position));
        view.imgViewFlag.setImageResource(imagens.get(position));

        return convertView;
    }

}


Feliz Natal e um Próspero 2012

Att.
Edney Marcel Imme

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário