Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.
public class MainActivity extends AppCompatActivity {

    public String tag="habos";
    String gender="male";
    String exercise="high";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new Title().execute();
    }

    private class Group {
        private String operator;
        private List<Rule> rules;

        public String getOperator() {
            return operator;
        }

        public void setOperator(String operator) {
            this.operator = operator;
        }

        public List<Rule> getRules() {
            return rules;
        }

        public void setRules(List<Rule> rules) {
            this.rules = rules;
        }


        public boolean parseRule(){
            //Log.i(MainActivity.this.tag,"hello");
            return true;
        }

        
    }

    
}

Σε Android έχω,εν συντομία,  τον παραπάνω κώδικα (έχω αφαιρέσει άσχετα τμηματά του). Αντιμετωπίζω πρόβλημα με την parseRule. Για κάποιο λόγο, όταν χρησιμοποιώ μέσα της κάποια μεταβλητή του MainActivity,  η εφαρμογή πετάει NullPointerException. Δηλαδή, αν γράψω        

public boolean parseRule(){
            return true;}

ή         public boolean parseRule(){
            Log.i("habos","hello");
            return true;}

η εφαρμογή δουλεύει σωστά, αλλά έτσι όπως είναι τώρα γραμμένο, πετάει το exception. Τα δεδομένα αρχικοποιούνται μέσω Gson και κατά τα άλλα δουλεύουν κανονικά, δηλαδή μπορώ να τυπώσω το operator ή τις μεταβλητές του Rules. Τι φταίει;

Δημοσ.

Νομίζω πως πρέπει να κάνεις reference τα outer class attributes με SomeClass.attribute αντί SomeClass.this.attribute. Δηλαδή στην περίπτωση σου MainClass.tag.

Δημοσ.
9 λεπτά πριν, Shai-Hulud είπε

ωπ έχεις δίκιο, απλά πρέπει επίσης να κάνω το tag static (public static String tag="habos";)

Ναι είναι κανόνας για να κάνεις reference πράγματα μέσα από inner class.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...