Now the program works fine,
this program can toggle wifi on/off
Now I want make this function to library, and simplify the code in the activity class
public class MyActivity extends Activity {
private WifiManager wifiManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
Button bWifi = (Button) findViewById(R.id.button);
bWifi.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view) {
if (!wifiManager.isWifiEnabled())
{
wifiManager.setWifiEnabled(true);
}
else
{
wifiManager.setWifiEnabled(false);
}
Toast.makeText(getApplicationContext(), "Toggle wifi", Toast.LENGTH_LONG).show();
}
});
}
}
And then I change to this. After the changes, I cannot run the app, How to call android function in other class?
public class MyActivity extends Activity {
Setting setting=new Setting();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button bWifi = (Button) findViewById(R.id.button);
bWifi.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view) {
setting.toggleWifi();
}
});
}
Setting class:
public class Setting extends Activity {
private WifiManager wifiManager;
public Setting()
{
wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
}
public void toggleWifi()
{
if (!wifiManager.isWifiEnabled())
{
wifiManager.setWifiEnabled(true);
}
else
{
wifiManager.setWifiEnabled(false);
}
Toast.makeText(getApplicationContext(), "Toggle Wifi", Toast.LENGTH_LONG).show();
}
}
This is second version, in this version, there is only one activity. And it can shows you the problem exactly. This version is still not work, if I delete this line
wifiManager = (WifiManager) (this.activity.getSystemService(Context.WIFI_SERVICE));
The app will works.
public class MyActivity extends Activity {
Setting setting=new Setting(this);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button bWifi = (Button) findViewById(R.id.button);
bWifi.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view) {
}
});
}
}
public class Setting {
private WifiManager wifiManager;
private Activity activity;
public Setting(Activity activity)
{
this.activity=activity;
wifiManager = (WifiManager) (this.activity.getSystemService(Context.WIFI_SERVICE));
}
}