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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試交換活動時應(yīng)用程序崩潰

嘗試交換活動時應(yīng)用程序崩潰

呼喚遠方 2022-12-21 14:43:05
這是一個基本的活動交換。如果我在 configureActivitySwap() 方法中聲明一個本地按鈕,應(yīng)用程序不會崩潰,如下所示:Button voiceBtn = (findViewById(R.id.goToVoice));但是我必須在全局范圍內(nèi)聲明按鈕,這樣我就可以在其他方法中使用按鈕,主要是在應(yīng)該/不應(yīng)該按下按鈕時激活和停用按鈕。我還注意到,如果我刪除該finish();方法并將其替換為其他應(yīng)用程序正常運行的方法,但我必須以finish();某種方式使用該方法。public class RecogActivity extends AppCompatActivity {    private Button voiceBtn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        voiceBtn = findViewById(R.id.goToVoice);        setContentView(R.layout.main_layout);        // some unrelated code        configureActivitySwap();    }    public void configureActivitySwap(){        // Button voiceBtn = (findViewById(R.id.goToVoice));        voiceBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                finish();            }        });    }}
查看完整描述

4 回答

?
青春有我

TA貢獻1784條經(jīng)驗 獲得超8個贊

您需要在調(diào)用 voiceBtn = findViewById(R.id.goToVoice) 之前調(diào)用 setContentView(); 由于您未指定布局,因此 findViewById 方法將不會獲取按鈕實例


public class RecogActivity extends AppCompatActivity {


   private Button voiceBtn;


   @Override

   protected void onCreate(Bundle savedInstanceState) {


      super.onCreate(savedInstanceState);

      // set the layout first

      setContentView(R.layout.YOUR_LAYOUT_XML_FILE_NAME)


      voiceBtn = findViewById(R.id.goToVoice);


      // some unrelated code


      configureActivitySwap();

 }


 public void configureActivitySwap(){

    // Button voiceBtn = (findViewById(R.id.goToVoice));


    voiceBtn.setOnClickListener(new View.OnClickListener() {


    @Override

    public void onClick(View view) {

        finish();

    }

  });

}


查看完整回答
反對 回復 2022-12-21
?
侃侃無極

TA貢獻2051條經(jīng)驗 獲得超10個贊

您是否在嘗試使用 findViewById 查找視圖之前設(shè)置布局?setContentView(R.layout.main_layout);



查看完整回答
反對 回復 2022-12-21
?
溫溫醬

TA貢獻1752條經(jīng)驗 獲得超4個贊

我猜試試)在你的// some unrelated codeis containssetContentView方法中?


public class RecogActivity extends AppCompatActivity {


    private Button voiceBtn;


    @Override

    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);


        voiceBtn = findViewById(R.id.goToVoice);


        setContentView(R.layout.some_layout)

        // some unrelated code


        configureActivitySwap();

    }


    public void configureActivitySwap(){

        // Button voiceBtn = (findViewById(R.id.goToVoice));


        voiceBtn.setOnClickListener(new View.OnClickListener() {


            @Override

            public void onClick(View view) {

                finish();

            }

        });

    }


}

你抓到 NPE 是因為findViewById調(diào)用了膨脹的視圖。在第一種情況下,你findViewById之前一直在打電話,但得到了例外。setContentView而在第二種情況下configureActivitySwap,那是追趕setContentView。setContentView之后移動super.onCreate(savedInstanceState),一切都會正常工作。


查看完整回答
反對 回復 2022-12-21
?
三國紛爭

TA貢獻1804條經(jīng)驗 獲得超7個贊

voiceBtn = (Button) findViewById(R.id.goToVoice);

用上面的替換你的onCreate()方法中的語句。它應(yīng)該工作。

并使用

super.finish() instead of finish()


查看完整回答
反對 回復 2022-12-21
  • 4 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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