2016-05-25 25 views
2

Ich habe einen Dialog mit einer Liste von Symbolen erstellt, d. H. Zeichnungsdateien. Ich habe eine Rasteransicht erstellt, um diese Symbole anzuzeigen.Wie konvertiert man int in Zeichen?

Jetzt möchte ich das ausgewählte Symbol und legen Sie es zu einer Bildansicht in meiner Aktivität.

Also, wie kann ich dies in Zeichnungs konvertieren, so dass ich das ausgewählte Symbol auf der Bildansicht meiner Aktivität festlegen kann?

Dialogcode:

private void showAlertDialog() { 

     GridView gridView = new GridView(this); 

     gridView.setGravity(Gravity.CENTER); 
     gridView.setPadding(0,20,0,20); 


     int[] mThumbIds = { 
       R.drawable.roundicons05,R.drawable.roundicons08,R.drawable.roundicons02,R.drawable.roundicons03,R.drawable.roundicons04, 
       R.drawable.roundicons16,R.drawable.roundicons37,R.drawable.roundicons06,R.drawable.roundicons07,R.drawable.roundicons05, 
       R.drawable.roundicons09,R.drawable.roundicons10,R.drawable.roundicons11,R.drawable.roundicons12,R.drawable.roundicons13, 
       R.drawable.roundicons14,R.drawable.roundicons15,R.drawable.roundicons16,R.drawable.roundicons17,R.drawable.roundicons18, 
       R.drawable.roundicons19,R.drawable.roundicons20,R.drawable.roundicons22, 
     }; 

     gridView.setAdapter(new ImageAdapter(CheckListActivity.this,mThumbIds)); 
     gridView.setNumColumns(4); 
     gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       // do something here 

      // icon.setImageDrawable(id); 
       imageId = position; 
       Drawable drawable = getResources().getDrawable(imageId); 
       icon.setImageDrawable(drawable); 

      } 
     }); 

     final MaterialDialog dialog = new MaterialDialog.Builder(CheckListActivity.this) 
       .customView(gridView, false) 
       .title("Select Icon") 
       .negativeText("CANCEL") 
       .canceledOnTouchOutside(true) 
       .build(); 

     dialog.show(); 


    } 

Ich habe versucht, wie diese

imageId = position; 
    Drawable drawable = getResources().getDrawable(imageId); 
    icon.setImageDrawable(drawable); 

aber dies wirft keine Ressource Ausnahme gefunden.

Danke ..

+0

'imageId = position' sollte' sein imageId = mThumbIds [position] ' – Blackbelt

+0

Sie' parent.getItem (posiiton) verwenden können, 'und legen Sie dann, dass als ziehbar – Raghunandan

Antwort

7

statt position als ResourceID verwendet (es ist nicht), sondern ein Element der im positionsmThumbIds Array erhalten. So sollte Ihr Code so aussehen:

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    // do something here 
    imageId = mThumbIds[position]; 
    Drawable drawable = getResources().getDrawable(imageId); 
    icon.setImageDrawable(drawable); 

} 

Ich hoffe, das hilft.

+0

bekam sie. Vielen Dank .. :-) @ishmaelMakitla –

0

diese Linie

imageId = position; 

ähnliche

imageId = mThumbIds[position]; 
0

Verfahren getDrawable (int) ist veraltet sein sollte. Jetzt können Sie leicht verwenden

icon.setImageResource(imageId); 
Verwandte Themen