Я хочу иметь function
, который является постоянным между всеми моими Fragments
, размещенными в MainActivity
. Я не уверен, как передать данные в active
Fragment
, так как Fragment
не будет знать о выполняемой функции.Android - Как отправить данные из основной деятельности в загруженный фрагмент
Я попытался создать в MainActivity
interface
и имеют Fragment
implement
в MainActivity.OnDataPass
. но не уверен, как инициировать интерфейс в MainActivity
. Я продолжаю получать NullPointerException
.
В моей основной деятельности:
public class Mainactivity extends FragmentActivity{
OnDataPass dataPasser;
BroadcastReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String str = intent.getStringExtra("data");
dataPasser.onDataPass(str);
}
};
}
public interface OnDataPass {
public void onDataPass(String data);
}
}
В моем фрагменте
public class Storage extends Fragment implements Mainactivity.OnDataPass{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
mrootview = (ViewGroup) inflater.inflate(R.layout.storage, container, false);
return mrootview;
}
@Override
public void onDataPass(String data) {
Log.v(TAG, data);
}
}
я даже на правильном пути, или есть лучший способ для отправки данных фрагмента?
Когда вы хотите отправить данные? Вы должны либо передать его через «args» при создании фрагмента, либо использовать «FragmentManager», чтобы получить экземпляр, и да, вы можете использовать свой интерфейс, чувствуете, что на ваши вопросы отсутствует важная часть кода, где вы пытаетесь вызвать ' onDataPass' – Blundell
@Blundell Знаете ли вы, что синтаксис я бы использовал для динамического определения dataPasser? или как я могу установить его только для хранения? – K3NN3TH