Поскольку я могу использовать метод, который получает параметр типа context в классе fragment, и это мочь использовать в в классе продукт нормальный класс

Я пробую делать приложение в android studio.

У меня есть класс fragments_producto и у меня есть метод, где я получаю ip автоматически этот, если оно я функционирует, деталь состоит в том, чтобы посылать называть это внутри другого класса:

   protected String wifiIpAddress(Context context) {
    WifiManager wifiManager = (WifiManager) 
    context.getSystemService(WIFI_SERVICE);
    int ipAddress = wifiManager.getConnectionInfo().getIpAddress();

    // Convert little-endian to big-endianif needed
    if (ByteOrder.nativeOrder().equals(ByteOrder.LITTLE_ENDIAN)) {
        ipAddress = Integer.reverseBytes(ipAddress);
    }

    byte[] ipByteArray = BigInteger.valueOf(ipAddress).toByteArray();

    try {
        ipAddressString = InetAddress.getByAddress(ipByteArray).getHostAddress();
        Toast.makeText(getActivity(), "mi ip: " + ipAddressString, Toast.LENGTH_SHORT).show();
    } catch (UnknownHostException ex) {
        Log.e("WIFIIP", "Unable to get host address.");
        ipAddressString = null;
    }
    return ipAddressString;

}

мой другой класс, названный продукты - класс java нормальная

       public class productos implements Parcelable {

       public static ArrayList<productos> lista() {

        try {
            final ArrayList<productos> productos = new ArrayList<productos>();
            Thread hilo = new Thread(new Runnable() {
                public void run() {
                    try {

                        URL url = new URL("http://192.168.127.189/android/consulta.php");
                        HttpURLConnection con = (HttpURLConnection) url.openConnection();
                        con.connect();
                        InputStream is = con.getInputStream();
                        BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
                        String respuesta = "", linea = "";
                        while ((linea = br.readLine()) != null) {
                            respuesta += linea + "\n";
                        }
                        System.out.println("respuesta=" + respuesta);
                        JSONArray arreglo = new JSONArray(respuesta);
                        for (int i = 0; i < arreglo.length(); i++) {
                            JSONObject objeto = arreglo.getJSONObject(i);
                            productos p = new productos();
                            p.nombre = objeto.getString("nombre_producto");

                            productos.add(p);
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
            hilo.start();
            while (hilo.isAlive()) {
                Thread.sleep(500);
            }
            return productos;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

}

и я хочу послать называть метод wifiAddress в классе продукты, что ip, что я получаю автоматически заменять это ip, который эта закрепила.

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

   Context context;
    final Productos_Fragment productosFragment = new Productos_Fragment();
    productosFragment.wifiIpAddress(context);

он дает мне эту ошибку:

    vaiable 'context' might not have been initialized

они могли бы объяснять мне, который является моей ошибкой!!!

!!!! спасибо!!!!

3
задан 21.03.2019, 18:58
1 ответ

Ты получаешь ошибку: Изменчивые

'context' might not have been initialized

, потому что точно у переменной context нет стоимости, так как ты не инициализировал ее, если ты находишься, в одной Activity ты можешь инициализировать стоимость используя getApplicationContext().

//inicializa contexto.
Context context = getApplicationContext();

final Productos_Fragment productosFragment = new Productos_Fragment();
productosFragment.wifiIpAddress(context);
0
ответ дан 03.12.2019, 12:53