#android #android-studio #android-fragments
#Android #android-studio #android-фрагменты
Вопрос:
Установите исключение текстового указателя, я получаю сообщение об ошибке.
public class FragmentBirinci extends Fragment {
private ImageView settingbtn;
private Button button;
private TextView textView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_birinci_layout,container,false);
settingbtn = view.findViewById(R.id.button2);
button = view.findViewById(R.id.button);
textView = view.findViewById(R.id.textView23);
textView.setText("Hello World"); //ERROR
settingbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getActivity(),SettingsActivity.class));
Toast.makeText(v.getContext(),"Ayarlar",Toast.LENGTH_SHORT).show();
}
});
return view;
}
}
Ошибка, которую я получил;
E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.vortex.soruhafizam, PID: 6341 java.lang.Исключение NullPointerException: попытка вызвать виртуальный метод ‘void android.widget.TextView.setText(java.lang.CharSequence)’ на нулевую ссылку на объект в com.vortex.soruhafizam.FragmentBirinci.onCreateView(FragmentBirinci.java:32) в androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600) в androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881) в androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl .java:1238) в androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java: 1303) в androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java: 439) в androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java: 2079) в androidx.fragment.app. FragmentManagerImpl Управление фрагментами.executeOpsTogether(FragmentManagerImpl.java: 1869) в androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824 ) в androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727) в androidx.fragment.app.FragmentManagerImpl$2.выполнить (FragmentManagerImpl.java:150) в android.os.Handler.handleCallback(Handler.java:938) в android.os.Handler.DispatchMessage(Handler.java:99) в android.os.Looper.loop(Looper.java: 223) в android.app.ActivityThread.main(ActivityThread.java:7656) в java.lang.reflect.Метод.invoke(собственный метод) в com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Ввод / вывод: отправка сигнала. PID: 6341 SIG: 9
Я попробовал это: ((TextView) view.findViewById(R.id.textView23)).setText («Привет, мир»); и TextView = (Textview) view.findViewById(R.id.textView23); TextView.setText («Привет, мир»);
Комментарии:
1.
textView = view.findViewById(R.id.textView23);
в этом и заключается проблема. Возможно,view
это неправильный фрагмент ИЛИtextView23
неверный идентификатор. Я бы рекомендовал отладку> использовать выражение оценки, чтобы определить, какой из них возвращает нулевой результат.2. <TextView android:id=»@ id/textView23″/>
3. Если вы уверены, что идентификатор является точным. Проблема должна быть в самом
view
себе. Проверьте идентификатор фрагмента и настоятельно рекомендуем вам перейти в режим отладки и использовать выражение оценки для поиска ошибки подчеркивания. Попробуйте также поделиться кодом фрагмента.4. Спасибо, приятель, идентификатор textview не совпал. Вот почему я получал сообщение об ошибке. Проблема устранена.
Ответ №1:
textView = view.findViewById(R.id.textView23);
— вот в чем проблема. Возможно, представление не является правильным фрагментом ИЛИ идентификатор textView23 неверен (весьма вероятно).
Один из способов проверить это — перейти в режим отладки и использовать выражение оценки, чтобы определить, какой из них возвращает нулевой результат. Это можно сделать, просто выполнив фрагмент кода, который создает исключение NullPointerException, и оттуда вы сможете провести расследование.