我有一个customView,我对其进行了水平化,但是当我试图将等级从mainActivity传递到我的customView时
Bundle transporter=getIntent().getExtras();
eclipse说;
对于CustomView类型,方法getIntent()未定义。
我不想为每个级别制作customView。我必须从我的MainActivity获得级别。
我该怎么做?请帮助。
这是我的活动
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Bundle selectionLevel=getIntent().getExtras();
level=selectionLevel.getString("key");
setContentView(R.layout.cizme_oyunu);
initial();
}
private void initial() {
check = (Button) findViewById(R.id.checkButton);
backrounds = new ArrayList<Integer>();
cizmeView = (CizmeOyunuView) findViewById(R.id.Cizme_View);
check.setOnClickListener(this);
for (int i = 1; i < 10; i++) {
int imageResources;
imageResources = getResources().getIdentifier("check_rakam" + i,
"drawable", this.getPackageName());
backrounds.add(imageResources);
}
}
我从checkBox获取级别并在我的Activity中指定为“level”。
之后ı想要在customView.CustomView构造函数上设置backround到指定级别。
public CizmeOyunuView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setColor(0xff00ff00);// our draw
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(50);
myContext = context;
mPath = new Path();
mBitmapPaint = new Paint();
mBitmapPaint.setColor(Color.RED);
setBackgroundResource(R.drawable.check_rakam0);
}
答案 0 :(得分:0)
试试这种方式
Bundle transporter = ((Activity)getContext()).getIntent().getExtras();
答案 1 :(得分:0)
从Bundle transporter获取值=((Activity)getContext())。getIntent()。getExtras();然后使用构造函数在自定义视图中传递它。然后在那里提取并使用它。