انتقال اطلاعات از یک کلاس به کلاس اصلی
سلام
من میخوام از یک کلاس که extend شده از ImageView هست اطلاعاتی رو ذخیره و در کلاس اصلیم که extend شده از Activity هست اون اطلاعات رو استخراج کنم.
آیا میشه از shared prefrence استفاده کرد!!؟؟؟؟
من این کاردو کردم ولی باز نشد!!!
حالا از این روش استفاده کردم....
public class DrawingBoard extends ImageView {
private static final String str = null;
Paint linePaint;
boolean mustDraw;
public static float x1;
public static float x2;
public static float y1;
public static float y2;
public SharedPreferences shp;
public DrawingBoard(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initialize();
}
public DrawingBoard(Context context, AttributeSet attrs) {
super(context, attrs);
initialize();
}
public DrawingBoard(Context context) {
super(context);
initialize();
}
//===========================================================================
private void initialize() {
linePaint = new Paint();
linePaint.setAntiAlias(true);
linePaint.setColor(Color.DKGRAY);
linePaint.setStrokeWidth(3);
}
//===========================================================================
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (mustDraw) {
canvas.drawLine(x1, y1, x2, y2, linePaint);
}
}
//===========================================================================
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mustDraw = true;
x1 = event.getX();
y1 = event.getY();
break;
case MotionEvent.ACTION_MOVE:
x2 = event.getX();
y2 = event.getY();
invalidate();
break;
case MotionEvent.ACTION_UP:
mustDraw = false;
invalidate();
break;
}
return true;
}
///////////////////////////////////////////////////من خواستم با چهار متد این اطلاعات رو به کلاس اصلیم پاس بدم
public float getx1() {
return x1;
}
public float getx2() {
return x2;
}
public float gety1() {
return y1;
}
public float gety2() {
return y1;
}
}
اینم کد کلاس اصلیم ولی خب جوابی نگرفتم..
drawingBoard = new DrawingBoard(ActivityAnalyze.this); String strX1 = String.valueOf(drawingBoard.getx1()); String strX2 = String.valueOf(drawingBoard.getx2()); String strY1 = String.valueOf(drawingBoard.gety1()); String strY2 = String.valueOf(drawingBoard.gety2()); txtx1 = (TextView) findViewById(R.id.nax); txtx2 = (TextView) findViewById(R.id.x2); txty1 = (TextView) findViewById(R.id.y1); txty2 = (TextView) findViewById(R.id.y2); txtx1.setText(strX1); txtx2.setText(strX2); txty1.setText(strY1); txty2.setText(strY2);
لطفا رانماییم کنید ممنون میشم..
خوب، شما هرجا خواستی ببینی الان متغیرت چه مقداری داخلش هست، خط بعد از متغیرت بنویس
Log.i("Log", نام متغیرتون);
اگه به نام متغیرتون ایراد گرفت، بعد از نام متغیرتون یدونه ""+ بنویسید درست میشه. حتی میتونید قبل از نام متغیرتون اسمش رو هم بنویسید که وقتی دارید توی لوگ کت مقادیر لوگ هارو نگاه میکنید، باهم اشتباه نگیریدشون. اینطوری:
Log.i("Log", نام فلان متغیر من که توی فلان اکتیویتی هست اینه : " + نام متغیرتون");
واقعا کسی نیست راهنماییم کنه..
خیلی به این موضوع نیاز دارم ...
چکار کنم دیگران این تایپ ببینن شاید کسی تونست کمکم کنه؟؟!
خدارو شکر درست شد...
لینک رو برای دوستان میذارم که استفاده کنن..
http://stackoverflow.com/questions/13323880/pass-data-from-class-to-activity
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .