0

我已經在surfaceview上有x和y變量,但不知道如何從 那裏獲取我的按鈕所在的主要活動。如何用主按鈕上的按鈕控制畫布位圖?

這看起來像一個百萬美元的問題沒有人回答我我發佈了這個問題幾次,我無法找到任何與此相關的任何東西。

這裏的按鈕:

Button1.setOnClickListener(this); 
    } 

    public void onClick(View v) { 


//I want to access variable x and y of surfaceview 


      if (x==230) 
      x=x +20; 

     invalidate(); 

    } 

在此先感謝

回答

0

如果您已經創建了SurfaceView,你有你的變量x和y的子類,最好的做法是創建getter和setter方法爲這些變量(我叫它setPositionX(),而不是setX(),因爲SurfaceView已經具有法):

public class MySurfaceView extends SurfaceView { 
    private int x; 

    private int y; 

    public void setPositionX(int x) { 
     this.x = x; 
    } 

    public void setPositionY(int y) { 
     this.y = y; 
    } 

    public int getPositionX() { 
     return x; 
    } 

    public int getPositionY() { 
     return y; 
    } 
} 

,並在你的活動:

private MySurfaceView mySurfaceView; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    // Create SurfaceView and assign it to a variable. 
    mySurfaceView = new MySurfaceView(this); 

    // Do other initialization. Create button listener and other stuff. 
    button1.setOnClickListener(this); 
} 

public void onClick(View v) { 
    int x = mySurfaceView.getPositionX(); 
    int y = mySurfaceView.getPositionY(); 

    if (x == 230) { 
     mySurfaceView.setPositionX(x + 20); 
    } 

    invalidate(); 
} 
0

你嘗試使用的界面?一旦獲得了x和y值,就可以將它們傳遞給接口方法。然後你可以在你的MainActivity上實現這個接口。

+0

我是新來的這個東東一些例子也將是讚賞 –

+0

,如果你把這些變量可能會更容易公共和靜態的,所以他們可以從任何地方訪問。使用接口的好處是它充當一個監聽器。執行流程將返回到調用類。在這裏你可以找到如何定義一個接口。 http://www.tutorialspoint.com/java/java_interfaces.htm – Emmanuel