У меня проблема с моим проектом Android. Я отправляю данные с помощью Datamap на свою одежду. У меня есть прослушиватель данных для получения данных в основной деятельности износа.
В основном я хочу изменить текст textView фрагмента из действия. Когда я пытаюсь это сделать, это не удается, и я получаю --> NullPointerException. Как я могу это исправить?
Это потому, что я вызываю фрагмент в методе onCreate основной активности?
XML-файл основной активности:
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>
Основная деятельность
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
viewpager = (ViewPager) findViewById(R.id.pager);
FragmentManager fm = getSupportFragmentManager();
viewpager.setAdapter(new FragmentAdapter(fm));
dataListener = new DataApi. DataListener() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onDataChanged(DataEventBuffer dataEvents) {
final ArrayList<DataEvent> events = FreezableUtils.freezeIterable(dataEvents);
DataMap mediaMap;
DataMap updateMap;
for (DataEvent event : events) {
PutDataMapRequest putDataMapRequest =
PutDataMapRequest.createFromDataMapItem(DataMapItem.fromDataItem(event.getDataItem()));
if (event.getType() == DataEvent.TYPE_CHANGED) {
if (event.getDataItem().getUri().getPath().equals("/myPath")) {
dataMap= DataMapItem.fromDataItem(event.getDataItem()).getDataMap();
FragmentA fragment = (MainControlScreenFragment) getSupportFragmentManager().findFragmentById(R.id.fragmentA);
}
}
MainActivity.class
и его xml-файл. - person Ivan Ivanov   schedule 16.03.2016MainActivity
вMainControlScreenFragment
, чтобы установить некоторый текст во фрагменте. Я прав? - person Ivan Ivanov   schedule 16.03.2016DataListener
является обновление текста вFragment
, почему бы не поместить его в самFragment
, а не вActivity
? Кажется, что в целом это будет более логическая структура, и в ней не будет необходимости вызыватьfindFragmentById
- что, похоже, и есть ваша проблема (на самом деле вы не указываете, где выбрасывается NPE). - person String   schedule 16.03.2016