Intereting Posts
ViewPager с одной страницей, содержащей несколько фрагментов "java.lang.IllegalArgumentException: нет представления для id" Динамически обновлять поле автозаполнения в Android? Получение "вызвано: java.lang.VerifyError:" Какую IDE использовать для разработки Android Phone? Как определить номер канала wifi, используемый wifi ap / network? Почему Bitmap.getConfig () возвращает значение null? Android Studio – Горячая клавиша для перехода к объявлению xml – это переход к файлу R ViewPager.setOffscreenPageLimit (0) не работает должным образом Добавление цветового фильтра в Drawable изменяет все кнопки, используя тот же Drawable Как проверить расширение файла в android Завершение действия из другого класса RecyclerView onCreateViewHolder вызывал чрезмерно при быстрой прокрутке с помощью DPAD Android: как использовать «adb shell wm» для имитации других устройств Как использовать словарь (например, iphone NSDictionary) в android? Экран блокировки телефона Android приводит к нескольким последующим событиям onPause / onResume

Fragment.onCreateView вызывает исключение нулевого указателя

Поэтому я использую фрагменты и пытаюсь подключить их к кликам.

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View contentView = inflater.inflate(R.layout.layout1, null); // View contentView=super.onCreateView(inflater,null,savedInstanceState,R.layout.layout1); startButton= (Button) getView().findViewById(R.id.button); 

Это XML для кнопки

  <Button android:layout_width="100dp" android:layout_height="wrap_content" android:text="Start Time" android:id="@+id/button" android:layout_alignParentLeft="true" android:layout_marginLeft="28dp" android:layout_marginTop="10dp" android:background="#1e497c" android:textColor="#ffffff"/> 

Это мое исключение

02-28 16: 49: 57.162 14375-14375 / com.example.listviewandroid E / AndroidRuntime: FATAL

 EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.listviewandroid/com.example.listviewandroid.MainActivity}: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295) at android.app.ActivityThread.access$700(ActivityThread.java:150) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:175) at android.app.ActivityThread.main(ActivityThread.java:5279) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at com.example.fragment.Fragment1.onCreateView(Fragment1.java:43) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:556) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1181) at android.app.Activity.performStart(Activity.java:5293) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2218)            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295)            at android.app.ActivityThread.access$700(ActivityThread.java:150)            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)            at android.os.Handler.dispatchMessage(Handler.java:99)            at android.os.Looper.loop(Looper.java:175)            at android.app.ActivityThread.main(ActivityThread.java:5279)            at java.lang.reflect.Method.invokeNative(Native Method)            at java.lang.reflect.Method.invoke(Method.java:511)            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)            at dalvik.system.NativeStart.main(Native Method) 

Очевидно, что он не может найти кнопку или что-то еще, что я не могу понять. Любая помощь очень ценится.

Вы не можете использовать getView() до onCreateView() пор, пока onCreateView() вернется, поскольку это метод, отвечающий за создание указанного представления. Вы должны изменить свой код на

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View contentView = inflater.inflate(R.layout.layout1, null); startButton = (Button) contentView.findViewById(R.id.button); 

Или, наоборот, переопределите onViewCreated() и реализуйте настройку Button в этом методе (используя getView() .

Просто используйте это в своем onCreateView

  View contentView = inflater.inflate(R.layout.layout1, container, false); startButton= (Button) contentView.findViewById(R.id.button); return contentView; 

Эта строка не имеет смысла:

 startButton= (Button) getView().findViewById(R.id.button); 

У вас пока нет представления, вы все равно его создаете.

Вместо этого вы можете это сделать:

  startButton= (Button)contentView.findViewById(R.id.button); 

Или дождитесь, пока метод onCreateView вернет фактический вид, который вы только что создали, и затем вы сможете получить ссылку на представление с помощью метода getView после того, как onCreateView вернет представление.

Надеюсь, поможет!

С уважением!