(Android Studioの)クラス間でデータを交換する方法を学習したいと思います。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:私は3つの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
にデータを転送する方法を見つけることができませんでした。
私は2つの方法(上記のコードで示されるように)しようとした:機能DrawingView
でupdate(int, int)
でグローバル変数として別個DataHolder
ビア
- を。
最後に、2つの整数だけでなく、配列の内容:int data[][];
も転送する必要があります。
どのように問題を解決するには?
ご協力いただきありがとうございます。
乾杯、 Kyriakos。