カスタムBaseAdapterのメソッドgetViewをオーバーライドして、Gridviewに次の情報を入力しました。
public View getView(int position, View convertView, ViewGroup parent) {
RelativeLayout relativeLayout;
if(convertView == null){
relativeLayout = (RelativeLayout)getItem(position);
} else{
relativeLayout = (RelativeLayout)convertView;
}
return relativeLayout;
}
しかし、常にこの例外が発生しますが、なぜ発生するのかわかりません... getItem(position)は、カスタムのRelativeLayoutであるRectangleを返す必要があります。手伝ってくれませんか?
java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams
編集:
私はすでに次のようなカスタムRelativeLayoutを持っています:
そして、getViewで、配列リストにあるこれらの長方形の1つを取得します。これは正しくありませんか?
public class Rectangle extends RelativeLayout{
public Rectangle(Context context, int dnd_drag_button_while_dragging, String text) {
super(context);
this.context = context;
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
this.setLayoutParams(params);
ImageView image = new ImageView(context);
image.setBackgroundResource(dnd_drag_button_while_dragging);
image.setLayoutParams(params);
img = dnd_drag_button_while_dragging;
LayoutParams tParams = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
tParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
TextView textView = new TextView(context);
textView.setText(text);
textView.setLayoutParams(tParams);
this.addView(image);
this.addView(textView);
}