Ответы пользователя по тегу Java
  • Как реализовать получение результата Android In-app billing в fragment?

    @Wolfak Автор вопроса
    Проблема решена. Я уже пытался решить ее таким способом, но вставлял данный код не туда. Необходимо чтобы и в основном Activity был метод onActivityResult, который передавал данные в onActivityResult фрагмента. Код onActivityResult из основного Activity:
    @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            for (Fragment fragment : getSupportFragmentManager().getFragments())
            {
                if (fragment != null)
                {
                    fragment.onActivityResult(requestCode, resultCode, data);
                }
            }
        }
    Ответ написан
    Комментировать
  • Как узнать через сколько вызовется AlarmManager, BroadcastReceiver?

    @Wolfak Автор вопроса
    Решил проблему таким способом:

    SharedPreferences.Editor editor = pCont.edit();
            long timetoupd = System.currentTimeMillis() + 3600000;
            editor.putLong("TimeToUpd", timetoupd);
            editor.apply();
    
            am.set(AlarmManager.RTC_WAKEUP, timetoupd, pendingIntent);
    Ответ написан
    Комментировать
  • Событие когда ScrollView прокручивается до конца?

    @Wolfak Автор вопроса
    Всем спасибо. Наконец разобрался. Сделал путем слияния двух методов:
    stackoverflow.com/questions/10713312/can-i-have-on...
    и
    stackoverflow.com/questions/4953692/android-detect...

    ScrollView PageContScroll = (ScrollView) findViewById(R.id.PageContScroll);
            PageContScroll.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
    
                @Override
                public void onScrollChanged() {
                    if(HaveMorePost == true) {
                        ScrollView PageContScroll = (ScrollView) findViewById(R.id.PageContScroll);
                        LinearLayout HeadTitLay = (LinearLayout) findViewById(R.id.HeadTitLay);
                        LinearLayout PageCont = (LinearLayout) findViewById(R.id.PageCont);
                        int scrollY = PageContScroll.getScrollY();
    
                        int diff = PageCont.getBottom() - (PageContScroll.getHeight() + scrollY + HeadTitLay.getHeight());
    
                        // if diff is zero, then the bottom has been reached
                        if(diff <= 0)
                        {
                            Toast toast = Toast.makeText(getApplicationContext(), "Работает!!!", Toast.LENGTH_SHORT);
                            toast.show();
                        }
    
                    }
    
                }
            });
    Ответ написан
    Комментировать
  • Как отправить POST запрос с помощью HttpURLConnection?

    @Wolfak Автор вопроса
    Разобрался, может кому пригодится:
    class SendLoginData extends AsyncTask<Void, Void, Void> {
    
            String resultString = null;
    
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
            }
    
            @Override
            protected Void doInBackground(Void... params) {
                try {
                    String myURL = "http://site.ru/";
                    String parammetrs = "param1=1&param2=XXX";
                    byte[] data = null;
                    InputStream is = null;
    
                    try {
                        URL url = new URL(myURL);
                        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                        conn.setRequestMethod("POST");
                        conn.setDoOutput(true);
                        conn.setDoInput(true);
    
                        conn.setRequestProperty("Content-Length", "" + Integer.toString(parammetrs.getBytes().length));
                        OutputStream os = conn.getOutputStream();
                        data = parammetrs.getBytes("UTF-8");
                        os.write(data);
                        data = null;
    
                        conn.connect();
                        int responseCode= conn.getResponseCode();
    
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
    
                        if (responseCode == 200) {
                            is = conn.getInputStream();
    
                            byte[] buffer = new byte[8192]; // Такого вот размера буфер
                            // Далее, например, вот так читаем ответ
                            int bytesRead;
                            while ((bytesRead = is.read(buffer)) != -1) {
                                baos.write(buffer, 0, bytesRead);
                            }
                            data = baos.toByteArray();
                            resultString = new String(data, "UTF-8");
                        } else {
                        }
    
    
    
                    } catch (MalformedURLException e) {
    
                        //resultString = "MalformedURLException:" + e.getMessage();
                    } catch (IOException e) {
    
                        //resultString = "IOException:" + e.getMessage();
                    } catch (Exception e) {
    
                        //resultString = "Exception:" + e.getMessage();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return null;
            }
    
            @Override
            protected void onPostExecute(Void result) {
                super.onPostExecute(result);
                if(resultString != null) {
                    Toast toast = Toast.makeText(getApplicationContext(), resultString, Toast.LENGTH_SHORT);
                    toast.show();
                }
    
            }
        }
    Ответ написан
    3 комментария