Я приношу извинения. Я знаю, что есть много повторяющихся вопросов, подобных этому, но даже после прочтения их здесь я не могу заставить свой работать или правильно понять ответ. Я не могу прокомментировать другой пост, чтобы объяснить ответы, либо из-за необходимости повторения.
Так что я достаточно опытен, когда дело доходит до JavaScript, но я все еще новичок в Java и учусь. Недавно у меня была некоторая практика работы с Java на BlueJ.
Недавно я начал разрабатывать приложение с помощью Android Studio с помощью Создание вашего первого приложения, которому я без труда следовал, изучал и понимал .
Теперь, когда я разрабатываю свое собственное приложение. Я продолжаю сталкиваться с проблемами, когда пытаюсь привести в порядок фрагменты кода, которые я нашел, сохраняя их во втором файле .java с помощью https://stackoverflow.com/a/3496655/6318164. ответ.
Я попытался максимально сократить код, чтобы показать его здесь.
Net.java
package com.nova.netmanager;
import android.content.Context;
import android.net.wifi.WifiManager;
class Net {
public boolean isWifiEnabled() {
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
return wifi.isWifiEnabled();
}
}
MainActivity.java
package com.nova.netmanager;
import android.content.Context;
import android.net.wifi.WifiManager;
import android.provider.Settings;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.Switch;
public class MainActivity extends AppCompatActivity {
Switch wifiSwitch;
WifiManager wifi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wifiSwitch = (Switch) findViewById(R.id.switch_wifi);
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
checkNetworkStatus();
wifiSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
wifi.setWifiEnabled(isChecked);
}
});
}
@Override
protected void onResume() {
super.onResume();
checkNetworkStatus();
}
public void checkNetworkStatus() {
Net net = new Net();
wifiSwitch.setChecked(net.isWifiEnabled());
}
}
Net.java
- это мой собственный класс, который я пытаюсь сделать, чтобы хранить все коммуникации и сетевые вещи вместе, такие как проверка статуса и их переключение. Теперь мое приложение продолжает падать, а отладчик продолжает жаловаться на эту строку в Net.java
после ее сужения.
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Я пытался добавить extends AppCompatActivity
в class Net
, но возникают проблемы, говорящие о том, что он должен запускаться после onCreate, что он делает из логики потока скрипта, которую я вижу. Я даже пробовал getActivity()
, которого не существует для класса, и пытался использовать этот Context
из других ответов.
WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
Я не понимаю, почему так сложно спросить Android, включен или выключен WiFi во втором сценарии. Я думал, что читал, что Android Studio должна быть простой, даже если никто раньше не кодировал.
Любая помощь будет оценена по достоинству. Извините за длинный пост и возможный дубликат.