2012-01-25 10 views
1

hi Я пытаюсь получить значение моего arraylist в классе адаптера изображения, но теперь я получил ошибку. Я пытаюсь решить, но я не знаю.Как решить мою ошибку адаптера изображения в моем приложении?

ошибка линии:

Bitmap bitmap = BitmapFactory.decodeFile(path_List.get(position)); 

ошибка: Метод Get (String) в типе Bundle не применяется для аргументов (интермедиат)

мой код: parxmlActivity.java класс

public class ParxmlActivity extends Activity { 

    private String array_spinner[]; 
    private Cursor cursor; 
    private int columnIndex; 

    ParsedExampleDataSet parsedExampleDataSet= null; 

    ArrayList<String> hltag_List=new ArrayList<String>(); 
    ArrayList<Subchild>sltag_List=new ArrayList<Subchild>(); 

    ArrayList<String> name_List =new ArrayList<String>(); 
    ArrayList<String> path_List =new ArrayList<String>(); 
    ArrayList<String> mmimage_List = new ArrayList<String>(); 
    ArrayList<String> mname_List = new ArrayList<String>(); 
    ArrayList<String> mmimage = new ArrayList<String>(); 
    ArrayList<String> mvideo_List = new ArrayList<String>(); 
    ArrayList<schild> model_List =new ArrayList<schild>(); 
    ArrayList<String> mspec_List = new ArrayList<String>(); 

    Spinner spinner_hltag,spinner_sltag, spinner_path; 

    ArrayAdapter<String> adapter_hltag; 
    ArrayAdapter<String> adapter_sltag; 
    ArrayAdapter<String> adapter_path; 

    int hltagPos=0; 
    int sltagPos=0; 


    Object sdcard; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     GridView sdcardImages = (GridView) findViewById(R.id.sdcard); 
     spinner_hltag= (Spinner) findViewById(R.id.spinner1); 
     spinner_sltag = (Spinner) findViewById(R.id.spinner2); 

     sdcardImages.setOnItemClickListener(new OnItemClickListener() { 


      public void onItemClick(AdapterView parent, View v, int position, long id) { 
       Intent intent = new Intent(ParxmlActivity.this, tabview.class); 
       //intent.putStringArrayListExtra("numbers", mspec_List); 
       intent.putExtra("name",model_List.get(position).name); 
       //intent.putExtra("name",model_List.get(position).name); 


       startActivity(intent); 

      } 
     }); 

     sdcardImages.setAdapter(new ImageAdapter(this)); 

     String[] proj = {MediaStore.Images.Thumbnails._ID}; 

     cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
       proj, null, null, null); 


     columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID); 



     try { 
      /* Get a SAXParser from the SAXPArserFactory. */ 
      SAXParserFactory spf = SAXParserFactory.newInstance(); 
      SAXParser sp = spf.newSAXParser(); 

      /* Get the XMLReader of the SAXParser we created. */ 
      XMLReader xr = sp.getXMLReader(); 

      /* Create a new ContentHandler and apply it to the XML-Reader */ 
      ExampleHandler myExampleHandler = new ExampleHandler(); 
      xr.setContentHandler(myExampleHandler); 

      /* Parse the xml-data from our file. */ 
      xr.parse(new InputSource(getAssets().open("mafile.xml"))); 
      /* Parsing has finished. */ 

      parsedExampleDataSet =myExampleHandler. myParsedExampleDataSet; 

      for (int i = 0; i < parsedExampleDataSet.gethltag().size(); i++) { 
       Log.v("gethltag SIZE ", ""+parsedExampleDataSet.gethltag().size()); 
       hltag_List.add(parsedExampleDataSet.getHLTag().get(i)); 

      } 

      sltag_List = parsedExampleDataSet.getSLTag(hltag_List.get(hltagPos)); 

      for(int i = 0; i < sltag_List.size(); i++) { 
       name_List.add(sltag_List.get(i).name); 
       path_List.add(sltag_List.get(i).path); 

      } 
      model_List.clear();  
      model_List = sltag_List.get(sltagPos).model; 

      for(int j = 0; j<model_List.size(); j++){ 
       mmimage_List.addAll(model_List.get(j).imageList); 
       mname_List.add(model_List.get(j).name); 
       mvideo_List.addAll(model_List.get(j).videoList); 
       mmimage.add(model_List.get(j).mimage); 
       mspec_List.add(model_List.get(j).spec); 

      } 




      spinner_hltag.setAdapter(new MyAdapter(ParxmlActivity.this, R.layout.row, hltag_List)); 

      spinner_sltag.setAdapter(new MyAdapter1(ParxmlActivity.this, R.layout.row1,name_List)); 


     } catch (Exception e) { 

     } 


    } 


    } 

это мой ImageAdapter.class, я получил ошибку ниже кода:

public class ImageAdapter extends BaseAdapter { 

    Bundle path_List; 
    private Context mContext; 

    public ImageAdapter(Context c) { 
     mContext = c; 
    } 

    public int getCount() { 
     return path_List.size(); 
    } 

    public Object getItem(int position) { 
     return null; 
    } 

    public long getItemId(int position) { 
     return 0; 
    } 
    public View getView(int position, View convertView, ViewGroup parent) { 
     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.setPadding(8, 8, 8, 8); 
     } else { 
      imageView = (ImageView) convertView; 
     } 

     //Bitmap bitmap = BitmapFactory.decodeFile(path_List); 
     Bitmap bitmap = BitmapFactory.decodeFile(path_List.get(position)); 
     imageView.setImageBitmap(bitmap); 
     return imageView; 

    } 



} 
+0

Просто удалите строку Bundle path_List и запустите приложение еще раз и сообщите мне, что произойдет. – user370305

+0

i remove now i get path_List не может быть разрешена ошибка в двух местах ... – balaji

+0

строка: return path_List.size(); а другой - Bitmap bitmap = BitmapFactory.decodeFile (path_List.get (position)); – balaji

ответ

1

Вы пытаетесь получить строку значений из Bundle path_List вместо ArrayList<String> path_List, поэтому вы получили эту ошибку ..

Удалить эту строку Bundle path_List; из public class ImageAdapter extends BaseAdapter

Сделать ссылку на ArrayList<String> path_List не Bundle path_List

И попробуйте снова запустить ..

UPDATE: Также я предполагаю, что ваш класс ImageAdapter в ParxmlActivity ..

Код: Кроме того, если это возможно сделать изменения в вашем классе ImageAdapter .. что-то подобное,

public class ImageAdapter extends BaseAdapter 
{ 
    ArrayList<String> path_List =new ArrayList<String>(); 
    Activity activity; 

public ImageAdapter(Activity activity,ArrayList<String> path_List) 
    { 
     this.activity = activity; 
     this.path_List = path_List; 
    } 
.... 

А в вашей деятельности эта строка должна быть,

sdcardImages.setAdapter(new ImageAdapter(this,path_List)); 
+1

O_o nice number '9999': D –

+0

@LalitPoptani :) :) ...... ..........:) –

+0

@CapDroid Capiiiiiii: D –

0

public Object get (String key) не принимает int как аргумент.

так replace path_List.get(position) по path_List.get(String.valueOf(position)).

еще одна вещь, которую я хочу добавить, это пул, здесь null, поэтому сначала вставьте путь внутри него. Возможно, вы забыли передать его от активности к адаптеру.

Обновление: Bitmap bitmap = BitmapFactory.decodeFile ((String) path_List.getString.valueOf (position));

+0

Я изменил новую версию shailendra: метод decodeFile (String) в типе BitmapFactory не применим для аргументов (Object) – balaji

+0

такая же первая ошибка: метод get (String) в типе Bundle не применимо для аргументов (int) – balaji

+0

. похоже, вы очень новичок в java. хороший учебник поможет вам избавиться от этих основных вещей –