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

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

如何知道從動態(tài)添加的視圖中單擊了哪些切換按鈕?

如何知道從動態(tài)添加的視圖中單擊了哪些切換按鈕?

斯蒂芬大帝 2023-06-04 15:22:36
這是我第一次使用 android 編程,我被卡住了?,F(xiàn)在我正在嘗試動態(tài)添加包含切換按鈕和編輯文本的視圖。但是,每當我選擇切換按鈕時,我創(chuàng)建的選項僅適用于上次創(chuàng)建的視圖。選項很簡單。有兩個切換按鈕,它們可以互斥例子這意味著每當我在上面添加新視圖(例如 B 和 C)時,選項僅適用于 C 而不適用于 B。我怎樣才能讓它適用于每個視圖?public void onAddField(View v){? ? LayoutInflater inflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);? ? final View rowView=inflater.inflate(R.layout.data_gledger_add_new,null);? ? tbg_add=(ToggleButton)rowView.findViewById(R.id.add_toggle_gledger);? ? tbc_add=(ToggleButton)rowView.findViewById(R.id.add_toggle_credit);? ? if(create_box<4){? ? ? ? csl.addView(rowView,csl.getChildCount()-1);? ? ? ? Log.d("create_box",String.valueOf(create_box));? ? ? ? create_box++;? ? }? ? else{? ? ? ? Log.d("create_box","full");? ? ? ? create_box=4;? ? }? ? tbg_add.setOnClickListener(new View.OnClickListener(){? ? ? ? public void onClick(View v){? ? ? ? ? ? if(tbg_add.isChecked()){? ? ? ? ? ? ? ? get_add_cla="menu1";? ? ? ? ? ? ? ? tbg_add.setTextColor(getResources().getColor(R.color.color_white));? ? ? ? ? ? ? ? tbc_add.setChecked(false);? ? ? ? ? ? ? ? tbc_add.setTextColor(getResources().getColor(R.color.color_black));? ? ? ? ? ? }? ? ? ? ? ? else{? ? ? ? ? ? ? ? get_add_cla="";? ? ? ? ? ? ? ? tbg_add.setTextColor(getResources().getColor(R.color.color_black));? ? ? ? ? ? }? ? ? ? }? ? });? ? //?? ??? ? tbc_add.setOnClickListener(new View.OnClickListener(){? ? ? ? public void onClick(View v){? ? ? ? ? ? if(tbc_add.isChecked()){? ? ? ? ? ? ? ? get_add_cla="menu2";? ? ? ? ? ? ? ? tbc_add.setTextColor(getResources().getColor(R.color.color_white));? ? ? ? ? ? ? ? tbg_add.setChecked(false);? ? ? ? ? ? ? ? tbg_add.setTextColor(getResources().getColor(R.color.color_black));? ? ? ? ? ? }? ? ? ? ? ? else{? ? ? ? ? ? ? ? get_add_cla="";? ? ? ? ? ? ? ? tbc_add.setTextColor(getResources().getColor(R.color.color_black));? ? ? ? ? ? }? ? ? ? }? ? });}我忘了提到視圖是通過單擊按鈕添加的。android:onClick="onAddField"
查看完整描述

1 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

問題幾乎可以肯定源于您正在重新使用實例字段(tbg_addtbc_add)作為動態(tài)添加新視圖的事實。

tbg_add=(ToggleButton)rowView.findViewById(R.id.add_toggle_gledger);
tbc_add=(ToggleButton)rowView.findViewById(R.id.add_toggle_credit);

因為您要重新分配這些字段并從點擊偵聽器中引用它們,所以您將始終引用最近創(chuàng)建的切換按鈕。

將這些更改為局部變量,一切都應該正常工作。

ToggleButton ledger=(ToggleButton)rowView.findViewById(R.id.add_toggle_gledger);
ToggleButton credit=(ToggleButton)rowView.findViewById(R.id.add_toggle_credit);

與您的問題無關,但您應該解決的問題是您將null作為第二個參數(shù)傳遞給您的inflate()調用:

final View rowView=inflater.inflate(R.layout.data_gledger_add_new,null);

當您null以這種方式傳遞時,系統(tǒng)將無法正確處理新膨脹的視圖LayoutParams(在 xml 文件中以開頭的任何內容)。android:layout_

您知道最終會將 添加rowView到您的csl視圖中,因此您應該將其作為第二個參數(shù)傳遞。一旦你這樣做了,你還必須false作為第三個參數(shù)傳遞以確保調用inflate()實際返回rowView而不是它的新父級 ( csl)。

final View rowView=inflater.inflate(R.layout.data_gledger_add_new, csl, false);


查看完整回答
反對 回復 2023-06-04
  • 1 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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