我有這個(gè),讓我們說(shuō)“家庭作業(yè)”(不知道怎么翻譯,抱歉)主要是為老師編寫簡(jiǎn)單的應(yīng)用程序,這樣他們就可以放成績(jī)和科目等。我設(shè)置了使用自定義適配器和列表視圖的活動(dòng),以顯示學(xué)生姓名,每行和每行都有 3 個(gè)按鈕,供每個(gè)學(xué)生設(shè)置成績(jī)。按鈕是 3,因?yàn)閷W(xué)生有 3 次嘗試通過(guò)。按下按鈕后,活動(dòng)將顯示(作為彈出窗口)以從鍵盤輸入成績(jī)并將其另存為按下的按鈕的新文本。我還不知道如何將該按鈕文本設(shè)置為從該活動(dòng)傳遞的成績(jī),因?yàn)槲也荒茉?onActivityResult 中檢索該字符串。我暫停了:String s = extras.getString(key)為了檢查我用 putExtra() 設(shè)置的那個(gè)鍵找到了什么值,在我的應(yīng)用程序進(jìn)入該步驟后,我看到:s: null extras: Bundle[{key=4}]就在我之前提到的那行代碼之后,4 是我在 EditText 中輸入的值,以傳遞回第一個(gè)活動(dòng)。即使我看到正確的值從第二個(gè)活動(dòng)傳遞到第一個(gè)活動(dòng),我也無(wú)法將它分配給我在 onActivityResult 中創(chuàng)建的新字符串。所以用更少的話來(lái)說(shuō),過(guò)程應(yīng)該是這樣的:在第一個(gè)活動(dòng)中,我單擊由自定義適配器創(chuàng)建的列表視圖的一行中的按鈕以打開結(jié)果活動(dòng)。在第二個(gè)活動(dòng)中,我在 EditText 中寫了一個(gè)數(shù)字,在按下按鈕后,我將它作為結(jié)果傳遞給 onActivityResult 返回到第一個(gè)活動(dòng)。我得到了額外的正確數(shù)字,但在分配給新字符串后,字符串保持為空。1st 我開始這樣的活動(dòng):Intent intent = new Intent(Activity1.this, Activity2.class); startActivityForResult(intent, 1);然后我像這樣從 EditText 傳遞額外的 onClick:EditText editText = findViewById(R.id.edit_text);Intent intent = new Intent();intent.putExtra("key", editText.getText());setResult(RESULT_OK, intent);finish();然后我回到第一個(gè)活動(dòng)來(lái)做這個(gè):@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == 1){ if(resultCode == RESULT_OK){ Bundle extras = data.getExtras(); String s = extras.getString("key"); //1st Pasue Log.e("onactivityresult string", (String) s); //2nd Pause } }}第一次暫停:Bundle[mParcelledData.dataSize=40]跨步,第二個(gè)暫停:Bundle[{key=4}]s = null所以回到第一個(gè)活動(dòng),在 onActivityResult 中,我想我可以看到在第二個(gè)活動(dòng)中從 EditText 傳遞了正確的值,但是在分配給新字符串之后,它一直將其設(shè)置為 null。我不知道我是否提供了足夠的信息,但如果想要更多信息,請(qǐng)?jiān)儐?wèn),我會(huì)盡力為您提供更多信息。編輯:這有效:intent.putExtra("key", editText.getText().toString());
extras.getString() 檢索正??確的值但分配 null
慕桂英4014372
2023-06-08 17:41:33