Android:グリッドビューを使用して新しいアクティビティを開始する

BaseAdapter getView メソッドで、グリッドビューに BaseAdapter を使用しました。メインアクティビティのコンテキストを使用して新しいアクティビティを開始していますが、 iconメッセージアプリケーションが1秒間見つからず、新しいアクティビティが開始されました.log catで、エラー PakageManager $ PakageNotFoundEception が表示されます。あなたの助けを前にありがとう。

public class ImageAdapter extends BaseAdapter{


    private Context mContext;
    ArrayList imgid;
    Uri uri;

    public ImageAdapter(Context c, ArrayList imgid2 ) {
        super();
        mContext = c;
        imgid=imgid2;

    }



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

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

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

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
       //TODO Auto-generated method stub

            ImageView imageView;
            if (convertView == null) { //if it's not recycled, initialize some attributes
                imageView = new ImageView(mContext);
                imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
              //imageView.setClickable(true);
                imageView.setPadding(8, 8, 8, 8);


                imageView.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View view) {
                      Log.d("onClick","position ["+position+"]");

                      try {

                          final Intent intent= new Intent("settings");
                          intent.setClass(mContext, listAvtivity.class); //*******
                          if(imgid.get(position)==R.drawable.setting4){mContext.startActivity(intent);}


                          if(imgid.get(position)==R.drawable.google){uri = Uri.parse("http://www.google.com");}

                          if(imgid.get(position)==R.drawable.yahoo){uri = Uri.parse("http://www.yahoo.com");}
                          if(imgid.get(position)==R.drawable.skype){uri = Uri.parse("http://www.skype.com");}


                          Intent intent1 = new Intent(Intent.ACTION_VIEW, uri);
                          mContext.startActivity(intent1);


                    } catch (Exception e) {
                       //TODO: handle exception
                          Log.e("onClick Error: ",e.toString());

                    }
                 }

                  });

            } else {
                imageView = (ImageView) convertView;
            }

            imageView.setImageResource(imgid.get(position));
            return imageView;
    }

}
1

1 答え

getViewメソッド内でView.OnClickListenerを使用しないでください。 OnItemClickListener を使用してGridViewに追加すると、ユーザーがアイテムをクリックします。

1
追加された