getContentResolver() and getWindow() in a DialogFragment
http://developer.android.com/reference/android/content/Context.html#getContentResolver()
getContentResolver()
needs a context.
You have context.getContentResolver()
. Use getActivity().getContentResolver()
.
http://developer.android.com/reference/android/app/Activity.html#getWindow()
Similarly use getActivity().getWindow()
getActivity()
Return the Activity this fragment is currently associated with.
Mario G.
Updated on June 14, 2022Comments
-
Mario G. almost 2 years
I'm trying to insert a SeekBar in a Dialog to change the brightness. To do this, I wrote this code.
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(); window = getWindow(); brightbar.setMax(255); brightbar.setKeyProgressIncrement(1); try { brightness = Settings.System.getInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS); } catch (SettingNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } float perc = (brightness /(float)255)*100; txtPerc.setText((int)perc +" %"); brightbar.setProgress(brightness); brightbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar seekBar) { Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness); LayoutParams layoutpars = window.getAttributes(); layoutpars.screenBrightness = brightness / (float)255; window.setAttributes(layoutpars); } public void onStartTrackingTouch(SeekBar seekBar) { } public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { brightness = progress; float perc = (brightness /(float)255)*100; txtPerc.setText((int)perc +" %"); } }); builder.setTitle("Brightness") .setPositiveButton("Close", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dismiss(); } }); // Create the AlertDialog object and return it return builder.create(); } }
The problem is that my IDE Eclipse marks errors in getContentResolver and getWindow because I'm working on a DialogFragment and not an Activity. How can I do to use this instruction in this class? Or, if you can not do that, there is an alternative? Thanks in advance
-
Raghunandan over 10 years@user3027663 you are welcome. you can check the docs for more info
-
eddy over 9 yearsCool!! Thank you very much. Do you think you could help me with this question : stackoverflow.com/questions/25549679/…