0

как принести первое изображение без щелчка извлечь изображение кнопкикак получать данные кнопки без нажмите

click to view image

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

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() внутри OnCreate(). – Nas

+0

Вы можете исправить мой код и вставить его в PLS. –

+0

слишком много тегов. Что вам нужно сделать, это проверить, что происходит, когда вы нажимаете на эту кнопку, делайте это внутри метода onCreate. –

ответ

0

вы можете вызвать его в OnCreate(), но вы не должны запустить его на UI потоке, поскольку это может быть отнимающим много времени operation.Read Specifying the Code to Run on a Thread помочь, вы можете добавить следующий блок в методе OnCreate(): метод

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

жаль, что вы уже используете AsyncTask в getAllImages(), просто добавьте getAllyImages(); к последней строке метода onCreate(). –

+0

ничего не случиться ... изображение не отображается. –

+0

это нормально, нажав кнопку выбора? любой журнал предупреждений? –

Смежные вопросы