0

comment récupérer la première image sans clic chercher le bouton d'imagecomment récupérer les données sans cliquez sur le bouton

click to view image

ce code fonctionnent bien, mais sur un clic vont chercher le bouton d'image, mais je veux aller chercher l'image avec Click chercher bouton images je veux supprimer ce bouton

Public class MainActivity extends AppCompatActivity implements 
View.OnClickListener { 

    private String imagesJSON; 

    private static final String JSON_ARRAY ="result"; 

    private static final String IMAGE_URL = "url"; 

    private JSONArray arrayImages= null; 

    private int TRACK = 0; 

    private static final String IMAGES_URL = "http://www.simplifiedcoding.16mb.com/ImageUpload/getAllImages.php"; 

    private Button buttonFetchImages; 
    private Button buttonMoveNext; 
    private Button buttonMovePrevious; 
    private ImageView imageView; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     imageView = (ImageView) findViewById(R.id.imageView); 
     buttonFetchImages = (Button) findViewById(R.id.buttonFetchImages); 
     buttonMoveNext = (Button) findViewById(R.id.buttonNext); 
     buttonMovePrevious = (Button) findViewById(R.id.buttonPrev); 
     buttonFetchImages.setOnClickListener(this); 
     buttonMoveNext.setOnClickListener(this); 
     buttonMovePrevious.setOnClickListener(this); 
    } 


    private void extractJSON(){ 
     try { 
      JSONObject jsonObject = new JSONObject(imagesJSON); 
      arrayImages = jsonObject.getJSONArray(JSON_ARRAY); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 

    private void showImage(){ 
     try { 
      JSONObject jsonObject = arrayImages.getJSONObject(TRACK); 
      getImage(jsonObject.getString(IMAGE_URL)); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 

    private void moveNext(){ 
     if(TRACK < arrayImages.length()){ 
      TRACK++; 
      showImage(); 
     } 
    } 

    private void movePrevious(){ 
     if(TRACK>0){ 
      TRACK--; 
      showImage(); 
     } 
    } 



    private void getAllImages() { 
     class GetAllImages extends AsyncTask<String,Void,String>{ 
      ProgressDialog loading; 
      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       loading = ProgressDialog.show(MainActivity.this, "Fetching Data...","Please Wait...",true,true); 
      } 

      @Override 
      protected void onPostExecute(String s) { 
       super.onPostExecute(s); 
       loading.dismiss(); 
       imagesJSON = s; 
       extractJSON(); 
       showImage(); 
      } 

      @Override 
      protected String doInBackground(String... params) { 
       String uri = params[0]; 
       BufferedReader bufferedReader = null; 
       try { 
        URL url = new URL(uri); 
        HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
        StringBuilder sb = new StringBuilder(); 

        bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream())); 

        String json; 
        while((json = bufferedReader.readLine())!= null){ 
         sb.append(json+"\n"); 
        } 

        return sb.toString().trim(); 

       }catch(Exception e){ 
        return null; 
       } 
      } 
     } 
     GetAllImages gai = new GetAllImages(); 
     gai.execute(IMAGES_URL); 
    } 

    private void getImage(String urlToImage){ 
     class GetImage extends AsyncTask<String,Void,Bitmap>{ 
      ProgressDialog loading; 
      @Override 
      protected Bitmap doInBackground(String... params) { 
       URL url = null; 
       Bitmap image = null; 

       String urlToImage = params[0]; 
       try { 
        url = new URL(urlToImage); 
        image = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
       } catch (MalformedURLException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       return image; 
      } 

      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       loading = ProgressDialog.show(MainActivity.this,"Downloading Image...","Please wait...",true,true); 
      } 

      @Override 
      protected void onPostExecute(Bitmap bitmap) { 
       super.onPostExecute(bitmap); 
       loading.dismiss(); 
       imageView.setImageBitmap(bitmap); 
      } 
     } 
     GetImage gi = new GetImage(); 
     gi.execute(urlToImage); 
    } 

    @Override 
    public void onClick(View v) { 
     if(v == buttonFetchImages) { 
      getAllImages(); 
     } 
     if(v == buttonMoveNext){ 
      moveNext(); 
     } 
     if(v== buttonMovePrevious){ 
      movePrevious(); 
     } 
    } 
} 
+0

getAllImages d'appel() à l'intérieur onCreate(). – Nas

+0

pouvez-vous corriger mon code et le coller pls. –

+0

trop de tags. Ce que vous devez faire est de vérifier ce qui se passe lorsque vous cliquez sur ce bouton ,, faire ce genre de choses dans la méthode onCreate –

Répondre

0

vous pouvez déclencher dans onCreate(), mais vous ne devez pas l'exécuter sur thread d'interface utilisateur, car il pourrait être un temps operation.Read Specifying the Code to Run on a Thread pour aider, vous pouvez ajouter le bloc suivant dans votre onCreate() méthode: méthode

new Runnable() { 
     @Override 
     public void run() { 
      getAllImages(); 
     } 
    }.run(); 
+0

Désolé de voir que vous avez déjà utilisé AsyncTask dans getAllImages(), ajoutez simplement getAllyImages(); à la dernière ligne de la méthode onCreate(). –

+0

rien ne se passe ... l'image ne s'affiche pas. –

+0

est-il correct avec le bouton de fetch cliqué? un journal d'avertissement? –