我以前也問過這個問題與其他適配器一樣SimpleAdapter但對於簡單的適配器的解決方案是不工作ArrayAdapter。在SimpleAdapter中,我獲得了屏幕寬度&高度,然後將其傳遞給我的RelativeLayout以獲取數據行。其效果是每次只顯示一個填滿整個屏幕的記錄。靜態數據沒問題,但現在我想使用可變數據。總而言之,我真的不希望通過高度和寬度。我的xml佈局正在使用dip,所以屏幕尺寸可以改變他們想要的。我真正在做的是一次控制getView調用一次只記錄一條記錄的方法。
無論如何使用SimpleAdapter的解決方法我認爲傳遞的高度和寬度就像以前一樣會工作,但由於某種原因,這次我得到一個錯誤,我不明白。這裏是設定的寬度和高度的代碼:
RelativeLayout.LayoutParams szParms = new RelativeLayout.LayoutParams(mWidth, mHeight);
vw_BigRow.setLayoutParams(szParms);
的高度和寬度在別處確定並且可以在我已經測試了所有的設備準確。 不知道還有什麼要發佈,所以只要告訴我,我添加該代碼/信息的問題。
E/AndroidRuntime(404): FATAL EXCEPTION: main
E/AndroidRuntime(404): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams
編輯: 由於已經正確地指出了一個CastClassException但我仍然沒有做分配權利,我繼續得到錯誤發生時我的錯誤。我曾嘗試在設置高度/寬度具有以下活性:
AbsListView.LayoutParams szParms = new AbsListView.LayoutParams(mWidth, mHeight);
lstvw_LiftData.setLayoutParams(szParms);
E/AndroidRuntime(1886): FATAL EXCEPTION: main
E/AndroidRuntime(1886): java.lang.ClassCastException: android.widget.AbsListView$LayoutParams
和
ListView.LayoutParams szParms = new ListView.LayoutParams(mWidth, mHeight);
lstvw_LiftData.setLayoutParams(szParms);
E/AndroidRuntime(1886): FATAL EXCEPTION: main
E/AndroidRuntime(1886): java.lang.ClassCastException: android.widget.AbsListView$LayoutParams
的lstvw_LiftData是有效ref和不爲空。
裏面一個ArrayAdapter的getView()重寫我也試着用同樣的結果 @覆蓋 公共查看getView(INT位置,查看convertView,ViewGroup以及母公司) {...}
設置的值我唯一可以工作的就是這個,然後是一對夫婦,不是全部,但是我的一些元素忽略了他們的佈局定位,並且走向底部。
View vw_BigRow = convertView;
if (vw_BigRow == null)
{
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
vw_BigRow = inflater.inflate(R.layout.liftdatalayout, null);
}
vw_BigRow.setMinimumHeight(mHeight);
vw_BigRow.setMinimumWidth(mWidth);
你解決了這個問題嗎?從您添加的代碼中,我看不到您如何使用視圖設置數據。 – dreamtale