Intereting Posts
Анализатор SAX получает атрибут от endelement Модернизация: как указать параметры, разделенные запятыми в запросе? Не удалось снять скриншот на андроиде с использованием роботизма и частного метода Android: screenOrientation = "sensorPortrait" не работает на API +17 Андроид на вид удален из родительского Android – onBackPressed () не работает для меня Android – доступ к файлу из активов \ PDF-дисплей AES Encryption Android <-> iOS разные результаты по длине сообщения> 15 байт Внешний вид ShareActionProvider Как сохранить alertdialog открытым после нажатия кнопки onclick? INSTALL_FAILED_NO_MATCHING_ABIS на GenyMotion Использование Google Docs и API электронных таблиц Google для Android NullPointerException – Drawable.setBounds – возможно, из-за переходов фрагментов Отправка почты через Implicit Intent с использованием Gmail с изображением в качестве приложения в Android? Как нарисовать много прямоугольников на холсте с хорошей производительностью?

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 вернет представление.

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

С уважением!