Tôi đang cố gắng thêm các nút hình ảnh vào chương trình thành một phần của một trình xem. Tôi đã thử các mã khác nhau, nhưng không có nút nào hiển thị ngay cả khi Eclipse không trả về lỗi nào.Thêm các nút theo chương trình vào một đoạn
Tôi đã tìm thấy câu hỏi tương tự here nhưng câu trả lời không giúp tôi làm cho nút của tôi xuất hiện.
Đây là mã của tôi.
public class ViewPagerFragment extends Fragment {
private ViewPagerActivity mViewPagerActivity;
private String mId;
public ViewPagerFragment(String id) {
mId = id;
}
@Override
public void onAttach(Activity activity) {
if (activity instanceof ViewPagerActivity) {
mViewPagerActivity = (ViewPagerActivity)activity;
}
super.onAttach(activity);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment, container, false);
int[] image_array = {
R.drawable.elebutton,
R.drawable.right,
R.drawable.middle,
};
for (int i =0;i<image_array.length;i++){
ImageButton b1 = new ImageButton(getActivity());
b1.setId(100 + i);
b1.setImageResource(image_array[i]);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
if (i > 0) {
lp.addRule(RelativeLayout.BELOW, b1.getId() - 1);
}
b1.setLayoutParams(lp);
ImageHolder ih = new ImageHolder(getActivity());
ih.addView(b1);
}
return v;
}
public class ImageHolder extends FrameLayout {
public ImageHolder(Context context) {
super(context);
initView(context);
}
public ImageHolder(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context);
}
public ImageHolder(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initView(context);
}
private void initView(Context context){
View.inflate(context, R.layout.fragment, this);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub
for(int i = 0 ; i < getChildCount() ; i++){
getChildAt(i).layout(l, t, r, b);
}
}
}