我知道這是一個簡單的問題,但我錯過了一些東西。
我有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