Using static methods in Android?

I have already made several applications on Android and noticed that I often use static methods.

For example, I have a class that extends PreferenceFragment. In this PreferenceFragment, I set the event onClickto Button.

    Button btn = new Button(getActivity().getApplicationContext());
    btn.setText("Save");
    v.addView(btn);
    btn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            SettingsActivity.finishActivityWithResultOkey();            
        }
    });

Then I call the static method in mine SettingsActivity, which ends this one Activity. Is this a good way to do what I want to do? Or is there a better solution?

+4
source share
2 answers

Android ( , Java, ) static " ", . " ", , ++, (, , ), , ), , GC . , ( " Android" ) SO, (. [ ] [Android] [ ), .

, , Activity Fragment, OnClickListener, MyFragmentClass.this.getActivity(), , , SettingsActivity ( ) .finishActivityWithResultOkey() . , .

, :

btn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            final Activity activity = MyFragmentClass.this.getActivity();
            if(activity instanceof SettingsActivity)
               ((SettingsActivity)activity).finishActivityWithResultOkey();
            else
               throw new IllegalStateException("This OnClickListener requires a SettingsActivity to start the fragment containig it"); //helps with debugging
        }
    });

: MyFragmentClass , :)

+2

Java, . .

 Button btn = new Button(getActivity().getApplicationContext());
    btn.setText("Save");
    v.addView(btn);
    btn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            SettingsFragment.this.getActivity().finish();            
        }
    });
+3

All Articles