我想了解如何在類之間交換數據(在Android Studio中)。 因爲我已創建了三個Java類目的:Android Studio:在類之間交換數據
1)GraficActivity.java:
public class GraficActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView iv = (ImageView) findViewById(R.id.testview);
//not working: iv.update(100,100);
DataHolder.setData(100, 100);
}
}
2)DrawingView.java:
public class DrawingView extends ImageView {
public DrawingView(Context context, AttributeSet attrs) {
super(context, attrs);
}
private int X=200;
private int Y=200;
//not working: X = DataHolder.getX();
//not working: Y = DataHolder.getY();
public void update(int dataX, int dataY) {
X=dataX;
Y=dataY;
this.invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint pinsel = new Paint();
pinsel.setColor(Color.rgb(64, 64, 255));
pinsel.setStrokeWidth(5);
canvas.drawLine(0, 0, X, Y, pinsel);
}
}
3)DataHolder.java:
public class DataHolder {
private static int X;
private static int Y;
public static int getX() {return X;}
public static int getY() {return Y;}
public static void setData(int dataX, int dataY) {X = dataX; Y=dataY;}
}
我在版面中包含了DrawingView
(與其他ele發言:)在main.xml中下面的代碼:
<de.carpelibrum.grafik.DrawingView
android:layout_width="match_parent"
android:layout_height="400dp"
android:background="#ffffff"
android:id="@+id/testview" />
這個應用程序的工作原理,但我無法找到一個方法來傳輸數據從GraficActivity
到DrawingView
。在DrawingView
- 經由單獨
DataHolder
作爲全局變量 - 隨着功能
update(int, int)
:我試圖兩種方法(如上文中的代碼表示)。
最後,我將不僅需要傳遞兩個整數,還需要傳遞一個數組的內容:int data[][];
。
如何解決問題?
非常感謝您的建議。
乾杯, Kyriakos。