2017-01-14 6 views
1

Попытка получить эти несколько шагов здесь, так что я могу поддержать RTL: Making an App RTL-ready
Я пытаюсь добавить эти строки в MainActivity.java в соответствии с инструкциями:Реагировать родной RTL на Android

I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance(); 
sharedI18nUtilInstance.setAllowRTL(context, true); 

enter image description here

(Я не являюсь родным разработчиком Android, но пытаюсь использовать реакцию на родной и иногда доступ к источнику Android для изменения более глубоких изменений - этот не будет компилироваться.)

First, где они, по-видимому, должны быть определены context? Я не могу себе представить, что это какой-то глобальный ...?

Second, setAllowRTL показывает красным ... который похоже на ошибку компиляции. Любая идея, что они имели в виду? я даже определяю это в нужном месте?

Мой код выглядит следующим образом:

import com.facebook.react.ReactActivity; 
import com.facebook.react.modules.i18nmanager.I18nUtil; 

import android.content.Intent; 

public class MainActivity extends ReactActivity { 

    /** 
    * Returns the name of the main component registered from JavaScript. 
    * This is used to schedule rendering of the component. 
    */ 
    @Override 
    protected String getMainComponentName() { 
     return "myApp"; 
    } 
    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance(); 
     sharedI18nUtilInstance.setAllowRTL(context, true); 
     MainApplication.getCallbackManager().onActivityResult(requestCode, resultCode, data); 
    } 
} 
+0

Контекст является деятельность вы в контекст в Android - это Activity, Service или Application, которое в настоящее время запущено, или оболочка вокруг одного. Таким образом, это не глобальное, а довольно широко распространенное. BTW, не сохраняйте его в статике или чем-либо, что может существовать за пределами действия, или вы можете вызвать большую утечку памяти. –

+0

Спасибо! Просто добавлено изображение, которое показывает, что «контекст» не ограничен. Is onActivityResult, действительный для этого? – Ted

+0

Вы находитесь в классе Activity, и все Activites получаются из контекста. Передайте это. –

ответ

6

Добавить этот импорт в MainApplication.java:.

import com.facebook.react.modules.i18nmanager.I18nUtil; 

и добавить

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance(); 
    sharedI18nUtilInstance.allowRTL(getApplicationContext(), true); 
} 
+0

я получаю ошибку - ошибка: не удается найти символ защищенный недействительным OnCreate (Bundle savedInstanceState) { ^ символ: класс Bundle расположение: класс MainActivity 1 ошибка при следовании вашим инструкциям. (Я Java noob ...) – alexunder

+0

попробуйте добавить эту строку в MainActivity вместо MainApplication –

+0

Прохладный, спасибо, я попробую и дам вам знать :) – alexunder

Смежные вопросы