android - 片段上的Settext指针异常
问题描述
设置文本指针异常,我得到错误。
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;
}
}
我得到的错误;
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.run(FragmentManagerImpl.java:150) 在 android.os.Handler.handleCallback(Handler.java:938) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os .Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit $MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) I/Process:发送信号。PID:6341 SIG:9 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.run(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.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit .java:592) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) I/Process:发送信号。PID:6341 SIG:9 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.run(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.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit .java:592) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) I/Process:发送信号。PID:6341 SIG:9 app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824) 在 androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727) 在 androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150) 在 android。 os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main (ActivityThread.java:7656) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 在 com.android.internal.os .ZygoteInit.main(ZygoteInit.java:947) I/Process:发送信号。PID:6341 SIG:9 app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824) 在 androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727) 在 androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150) 在 android。 os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main (ActivityThread.java:7656) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 在 com.android.internal.os .ZygoteInit.main(ZygoteInit.java:947) I/Process:发送信号。PID:6341 SIG:9 在 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.Method.invoke(Native Method)在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) I/Process:发送信号。PID:6341 SIG:9 在 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.Method.invoke(Native Method)在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) I/Process:发送信号。PID:6341 SIG:9 java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit. java:592) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) I/Process: 发送信号。PID:6341 SIG:9 java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit. java:592) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) I/Process: 发送信号。PID:6341 SIG:9
我试试这个: ((TextView) view.findViewById(R.id.textView23)).setText("Hello World"); 和 textView = (Textview) view.findViewById(R.id.textView23); textView.setText("Hello World");
解决方案
textView = view.findViewById(R.id.textView23);
- 这就是问题所在。可能是视图不是正确的片段或 textView23 ID 不正确(很可能)。
检查这一点的一种方法是进入调试模式并使用评估表达式来确定哪个返回空结果。这可以通过简单地执行产生 NullPointerException 的代码来完成,并且您应该能够从那里进行调查。
推荐阅读
- sql-server - SQL Server XML 属性粉碎
- python - 如何在 python-moderngl 中渲染具有不同纹理的多个对象
- visual-studio-code - Visual Studio Code:多列编辑器布局
- sas - 如何在 sas 合并中对不在 select ... 中的 proc sql 进行编码?
- python - 通过 Jupyter Notebook 安装的 Python 包可以离线使用吗?反之亦然
- regex - 如何提取子串
- json - 快速数组 JSON 解码
- sql - 如何使用 SQL 案例遍历记录
- python - 这两个简单的代码有什么区别?更具体地说,这个 if 语句是做什么用的?
- javascript - 从字典中选择的随机项目除了最后一个