Android onContent Променено на 2.3 срещу 4.2

public class MyActivity extends ActionBarActivity {

    @Override
    public void onContentChanged() {
        TextView tv = (TextView) findViewById(R.id.asdasd);
        // tv is NULL on Android 2.3
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

}

На устройство с Android v.4.2 findViewById() връща правилния изглед, докато на 2.3 основно връща null. Каква е разликата?

АКТУАЛИЗАЦИЯ: От това, което опитах: Струва ми се, че по някакъв начин при разширяване от ActionBarActivity (не директно от Activity от 2.3) промените все още не са налице, когато се извиква contentChanged, но при разширяване от Activity от 2.3 извикването на метода е навреме. За момента грозен хак, който изглежда работи, е: имам суперклас за MyActivity, който се простира от ActionBarActivity, там замествам всички методи setContentView като този:

@Override
    public void setContentView(View view) {
        super.setContentView(view);
        afterSetContentView = true;
        onContentChanged();
    }

и вътре в моя onContentChanged проверявам afterSetContentView и след това използвам findViewById.

АКТУАЛИЗАЦИЯ 2: Изглежда, че това е грешка в библиотеките за поддръжка, докладвах за нея и беше присвоена, така че сега я поправят: https://code.google.com/p/android/issues/detail?id=59445&q=onContentChanged&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars


comment
Радвам се да видя, че работи. Трябва да добавите вашата редакция UPDATE 2 като отговор и да я приемете, за да знаят хората, че този проблем е решен. :)   -  person Alex Lockwood    schedule 30.08.2013


Отговори (1)


Както се оказа, това беше грешка в библиотеката за поддръжка. Вижте подробности тук: https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=onContentChanged&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby=&sort=&id=59445

person inteloid    schedule 30.08.2013
comment
АКТУАЛИЗАЦИЯ: Днес направиха издание, вижте го. - person inteloid; 01.11.2013