第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

view.findViewById() 在一個(gè)函數(shù)中返回 null 但在另一個(gè)函數(shù)中工作正常

view.findViewById() 在一個(gè)函數(shù)中返回 null 但在另一個(gè)函數(shù)中工作正常

元芳怎么了 2022-12-21 12:44:43
我試圖在單擊按鈕時(shí)調(diào)用的函數(shù)中使用 view.findViewById() 獲取 TextView 對(duì)象。在 onClickButton() 中返回 null,而在其他函數(shù) setDefaultValues() 中它工作正常。Activity1.javapublic class Activity1 extends AppCompatActivity {    private final Double TIP = 10.0;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_1);        setDefaultValues();    }    private void setDefaultValues() {        TextView tipView = findViewById(R.id.tipView);       tipView.setText(getString(R.string.main_msg_tip,Double.toString(TIP)));    }    public void onClickToggleButton(View view){        TextView tipView = view.findViewById(R.id.tipView);        switch (view.getId()) {            case (R.id.toggleButtonBad):                tipView.setText(getString(R.string.main_msg_tip, Double.toString(BAD)));                break;            }}測(cè)試應(yīng)用程序時(shí)顯示以下錯(cuò)誤消息:java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object referenceat com.example.chandan.learning.Activity1.onClickToggleButton編輯:該activity_1.xml文件確實(shí)包含TextView帶有tipViewid 的元素,因此 XML 文件中不存在元素的理論不成立。
查看完整描述

2 回答

?
開滿天機(jī)

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊

復(fù)制代碼是一種不好的做法。現(xiàn)在你有重復(fù)的方法findViewById。為避免這種情況,您應(yīng)該在類中創(chuàng)建一個(gè)全局變量Activity1。這也將是您的問題的解決方案:


public class Activity1 extends AppCompatActivity {

    private final Double TIP = 10.0;

    private TextView tipView;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_1);

        setDefaultValues();

    }


    private void setDefaultValues() {

        tipView = findViewById(R.id.tipView);

        tipView.setText(getString(R.string.main_msg_tip, Double.toString(TIP)));

    }


    public void onClickToggleButton(View view) {

        switch (view.getId()) {

            case (R.id.toggleButtonBad):

                tipView.setText(getString(R.string.main_msg_tip, Double.toString(BAD)));

                break;

        }

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-12-21
?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

您正在嘗試從單擊視圖(例如按鈕)中查找視圖,而“tipView”位于主視圖容器中。所以更新你的方法“onClickToggleButton”如下:


    public void onClickToggleButton(View view) {

        TextView tipView = findViewById(R.id.tipView);

        switch (view.getId()) {

            case (R.id.toggleButtonBad):

             tipView.setText(getString(R.string.main_msg_tip, Double.toString(BAD)));

            break;

        }

    }


查看完整回答
反對(duì) 回復(fù) 2022-12-21
  • 2 回答
  • 0 關(guān)注
  • 131 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)