我知道这是一个简单的问题,但我错过了一些东西。
我有2个类:MainActivity和CustomView。 我有这个CustomView的XML布局。在CustomView类中获取MainActivity上下文
我想从我的CustomView类访问我的所有MainActivity变量,并修改它们, 我试图获取上下文,但它不起作用。
MainActivity类别:
MyCustomView customV;
int myVar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start_page);
customV = (MyCustomView) findViewById(R.id.view2);
myVar = 5;
}
MyCustomView类:
public class MyCustomView extends TextView {
public MyCustomView(Context context) {
super(context);
init();
}
public MyCustomView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public MyCustomView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
context.myVar = 7 //this is what I'm trying to do...
我也尝试过的getContext没有工作。 你能帮我吗?
嘿谢谢你的回答,我明白你的意思,但我仍然没有得到什么更好的设计来解决我的问题。如果myVar是一个gridView,那么我的customView实际上就是surfaceView。当我绘制surfaceView时 - 我需要知道有关GridView位置的信息(在“onTouchEvent”中,我需要类似于context.myVar.pointToPosition(x,y))。还有什么其他方法可以获得另一个视图的位置if不是这样的设计吗? – SHAI
如果我正确地理解了你,当GridView发生触摸事件时,你需要在SurfaceView上画一些东西,然后你可以在你的SurfaceView中创建一个公用方法,你可以在GridView的onTouch中调用它。以帮助你没有所有的细节,但我想说的主要想法是,每个视图应该是独立的,并根据原始数据绘制/修改自己,而不是持有对其他视图或活动的引用。 – 2Dee
谢谢我'你会试试看! – SHAI