0

我有一个 customView 并对其进行了分级,但是当我尝试将级别从 mainActivity 传递到我的 customView 时

Bundle transporter=getIntent().getExtras();

日食说;

对于 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);
    }
}

我从复选框中获取级别并分配给我的活动中的“级别”。

之后,我想在 customView.CustomView 构造函数上将背景设置为指定级别。

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);

}
4

2 回答 2

0

试试这个方法

Bundle transporter = ((Activity)getContext()).getIntent().getExtras();
于 2013-09-10T07:32:01.083 回答
0

从 Bundle transporter = ((Activity)getContext()).getIntent().getExtras() 获取值;然后使用构造函数在自定义视图中传递它。然后在那里提取并使用它。

于 2013-09-10T07:53:18.960 回答