Я смутно знаю Java (без реального опыта, но пытался понять синтаксис, читая онлайн)
Я просматривал онлайн-статью wix о написании нативного кода для Java приложения. Из своего блога на носителе они попросили добавить это в LibraryModule. java
@ReactMethodpublic // Marks method in public
void show(String text) {
Context context = getReactApplicationContext();
Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}
Полный фрагмент после добавления
package com.reactlibrarynativetoast;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Callback;
public class RNNativeToastLibraryModule extends ReactContextBaseJavaModule {
private final ReactApplicationContext reactContext;
public RNNativeToastLibraryModule(ReactApplicationContext reactContext) {
super(reactContext);
this.reactContext = reactContext;
}
@Override
public String getName() {
return "RNNativeToastLibrary";
}
}
@ReactMethodpublic //marks the method as public for react native so it can be used in the JS project.
void show(String text) {
Context context = getReactApplicationContext();
Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}
Я не могу понять приведенный выше фрагмент (или тот, который они попросили меня добавить)
- Почему мы должны использовать
@ReactMethodpublic
? почему мы не можем сделать это public void show
? Context context = getReactApplicationContext()
в Context context
Контекст должен представлять тип контекста? Где и как мы получаем эти типы? и getReactApplicationContext()
, не вижу замедления этой функции. Как они это называют, не заявляя об этом? - Тоже не понимаю
Toast.makeText(context, text, Toast.LENGTH_LONG).show();