我正在尝试在对话框中插入SeekBar来改变亮度.为此,我编写了这段代码.
public class Lum extends DialogFragment{
private SeekBar brightbar;
private int brightness;
private ContentResolver cResolver;
private Window window;
TextView txtPerc;
boolean stato;
Context context;
public android.app.Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.dialog_brightness, null);
builder.setView(view);
brightbar = (SeekBar) view.findViewById(R.id.brightbar);
txtPerc = (TextView) view.findViewById(R.id.txtPercentage);
//cResolver = getContentResolver();
//window = getWindow();
brightbar.setMax(255);
brightbar.setKeyProgressIncrement(1);
brightbar = (SeekBar) view.findViewById(R.id.brightbar);
txtPerc = (TextView) view.findViewById(R.id.txtPercentage);
cResolver = getContentResolver(); …Run Code Online (Sandbox Code Playgroud) 我必须在一个我必须在Activity中调用的类中使用BroadcastReceiver.显然,我必须注册BroadcastReceiver然后我写了这段代码:
public class MyClassName {
Context context;
BroadcastReceiver batteryInfoReceiverLevel;
public void CheckBatteryLevel() {
Log.d("App", "I'm in the CheckBatteryLevel");
context.registerReceiver(batteryInfoReceiverLevel, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
batteryInfoReceiverLevel = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("Apps", "I'm in the onReceive");
int level= intent.getIntExtra(BatteryManager.EXTRA_LEVEL,0);
if(level <=100) {
//Do something
}
else if(level >=100) {
//Do something
}
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,应用程序崩溃给出" Error receiving broadcast Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000010 (has extras) }并且崩溃线是
context.registerReceiver(batteryInfoReceiverLevel, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
Run Code Online (Sandbox Code Playgroud)
我该怎么办?