Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Android > передача данных между классами


Автор: batex 15.10.2011, 14:21
Столкнулся с проблемой. Не знаю как передать данные между двумя классами. Например есть два класса 
Код

public class Pro9Activity extends Activity {
    

    /** Called when the activity is first created. */
    public static String radius;
    @Override
    
    public void onCreate(Bundle savedInstanceState) {
     
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        EditText rad = (EditText)findViewById(R.id.rad);
        radius = rad.getText().toString();  
        Button button1 = (Button)findViewById(R.id.button1);
       
              button1.setOnClickListener(new View.OnClickListener() {
         
            public void onClick(View v) 
            {
                Paints d = new Paints(getApplicationContext());
                setContentView(d);
            }
            });
            
        
    }
   
}


Код

public class Paints extends View{
        
    
    public Paints(Context context)
    {
        super(context);
    }
    public void onDraw(Canvas c, int radius)
    {
        super.onDraw(c);
        
        int x0,y0,x1,y1,x2,y2;
                String rad;
                rad = radius;
    }
}



Как передать переменную radius между классами?

Автор: mes 15.10.2011, 15:05
Цитата(batex @  15.10.2011,  13:21 Найти цитируемый пост)
. Не знаю как передать данные между двумя классами. Например есть два класса 

между двумя объектами..

один объект должен знать где искать другой.. в простом случае можно просто  передать ссылку в конструктор.. 

Автор: ivanovpv 17.10.2011, 08:15
В общем случае вполне можно обойтись такой конструкцией:

Код

public class Paints extends View{
        
    private int radius;
    public Paints(int radius, Context context)
    {
        super(context);
        this.radius=radius;
    }
    public void onDraw(Canvas c, int radius)
    {
        super.onDraw(c);
        
        int x0,y0,x1,y1,x2,y2;
                String rad;
                rad = radius;
    }
}


В узком смысле - в смысле Android средством IPC (межпроцессного общения) является обмен т.н. http://developer.android.com/reference/android/os/Parcel.html - любой объект можно упаковать в Parcel послать и принять. В данном случае, обмен Parcel похоже что нецелесообразен - можно волпне обойтись стандартными Java средствами.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)