Alterar a exibição de outro segmento
Eu escrevi um código para baixar uma imagem da internet. E eu tenho que mostrar isso em umImageView
que é dinamicamente criado.
E eu estou recebendo um erro que apenas o thread original que criou uma hierarquia de exibição pode tocar seus pontos de vista. Eu sei que tenho que escrever um identificador, mas como posso fazer isso?
Aqui está o meu código:
<code>public class ResimCek implements Runnable { int resimID = 0; public ResimCek(int parcaID) { // store parameter for later user resimID = parcaID; } public void run() { int resID = getResources().getIdentifier(Integer.toString(resimID) , "tag", getPackageName()); ImageView resim = (ImageView) findViewById(resID); Drawable image = ImageOperations(getBaseContext(),"http://141.11.11.206/parca/" + Integer.toString(resimID) + ".jpg" ,"I" + Integer.toString(resimID) + ".jpg"); // I AM GETTING ERROR HERE ****************** resim.setImageDrawable(image); // ************************* } } private Drawable ImageOperations(Context ctx, String url, String saveFilename) { try { InputStream is = (InputStream) this.fetch(url); Drawable d = Drawable.createFromStream(new URL(url).openConnection().getInputStream(),saveFilename); return d; } catch (MalformedURLException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } } public Object fetch(String address) throws MalformedURLException,IOException { URL url = new URL(address); Object content = url.getContent(); return content; } private void MalzemeEkle(String malzemeKodu, String malzemeTanimi) { ImageView parcaresmi = new ImageView(this); parcaresmi.setId(Integer.parseInt(malzemeKodu)); Runnable r = new ResimCek(Integer.parseInt(malzemeKodu)); new Thread(r).start(); } </code>