为了账号安全,请及时绑定邮箱和手机立即绑定

我的 findViewByid 在扩展片段上变成红色,我在 onCreate 方法上而不是在

我的 findViewByid 在扩展片段上变成红色,我在 onCreate 方法上而不是在

牛魔王的故事 2021-10-13 15:36:07
find view by id标记为红色,我不是在onCreateView上做的,帮我解决这种错误,我真的是android编程的新手package com.example.mymonitoring;public class MonitoringFragment extends Fragment {private static final String TAG = "STATISTICACTIVITY";private Button Temperature;private Button Humidity;private TextView t1;private TextView t2;private static TextView t3;private static final String THINGSPEAK_CHANNEL_ID = "572138";private static final String THINGSPEAK_API_KEY = "ND76MAN2CWQJG25G"; //GARBAGE KEYprivate static final String THINGSPEAK_API_KEY_STRING = "ND76MAN2CWQJG25G";/* Be sure to use the correct fields for your own app*/private static final String THINGSPEAK_FIELD1 = "field1";private static final String THINGSPEAK_FIELD2 = "field2";private static final String THINGSPEAK_FIELD3 = "field3";private static final String THINGSPEAK_UPDATE_URL = "https://api.thingspeak.com/update?";private static final String THINGSPEAK_CHANNEL_URL = "https://api.thingspeak.com/channels/";private static final String THINGSPEAK_FEEDS_LAST = "/feeds/last?";private ThingSpeakChannel tsChannel;private ThingSpeakLineChart tsChart;private LineChartView chartView;public MonitoringFragment() {    // Required empty public constructor}@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {return v;}@Overridepublic void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        t1 = (TextView) findViewById(R.id.tempNumber);        t2 = (TextView) findViewById(R.id.humidNumber);这是我的 xml 代码,fragment_monitoring.xml,findviewById 标记为红色,在扩展片段中的 onCreate 方法上执行此操作
查看完整描述

3 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

片段没有findViewById()方法,所以它是红色的,因为它不存在。

findViewById() 必须在 View 对象上或从 Activity(它只是该 Activity 的根 View 的代理)调用。

无论如何,您也不能调用FragmentfindViewById()onCreate()方法,因为onCreate()在之前执行onCreateView(),这意味着 Fragment 的视图此时为空。

v 似乎也不是您的 Fragment 中的变量。

将您的代码移至onCreateView()onViewCreated()findViewById()在您的视图上进行调用。


查看完整回答
反对 回复 2021-10-13
  • 3 回答
  • 0 关注
  • 1268 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信