• [android]R.class里有ID,onCreate方法里调用findViewById返回空


    在做android练习,一个新手错误,记录一下:

    在练习android权威编程指南时,第5章 第二个Activity部分练习,出现标题问题,代码还原如下:

    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mQuestionTitle = (TextView)findViewById(R.id.question_title);
            mQuestionAnswer = (TextView)findViewById(R.id.answer_text_view);
            mShowAnswer = (Button)findViewById(R.id.show_answer_button);
            setContentView(R.layout.activity_cheat);
            String mAnswerIsTrue = getIntent().getStringExtra(EXTRA_ANSWER);
            if(mAnswerIsTrue != null && mAnswerIsTrue.equals("")==false){
                mCheatQuestion = GSON.fromJson(mAnswerIsTrue,Question.class);
                mQuestionAnswer.setText(mCheatQuestion.getTextResId());
            }else{
                mQuestionTitle.setText(R.string.cheat_activity_error);
                mQuestionAnswer.setText(R.string.cheat_activity_error);
            }

    错误原因是没有设置ContentView就获取对象了,要把findViewById置于setContentView函数下面:

    setContentView(R.layout.activity_cheat);
    
    mQuestionTitle = (TextView)findViewById(R.id.question_title);
            mQuestionAnswer = (TextView)findViewById(R.id.answer_text_view);
            mShowAnswer = (Button)findViewById(R.id.show_answer_button);
            

     

  • 相关阅读:
    精彩分享
    Cocoa.Programming.for.Mac.OS.X 3rd 前8章小知识点
    ObjectiveC protocol 和 delegate
    Object copying
    KeyValue Observing
    实现KeyValue Coding 的5种方法
    关于 XIB 和 NIB
    ObjectiveC 中的 self 和 super
    使用KeyValue Coding
    PrepareStatement的两个executeQuery语句
  • 原文地址:https://www.cnblogs.com/aocshallo1/p/12256343.html
Copyright © 2020-2023  润新知