2014-11-02 2 views
0

Я хочу создать один новый объект public Core core = new Core(); из имени класса Core и поделиться им в другом классе, чтобы каждый класс мог внести изменения, не создавая снова объект.Как обмениваться объектами между несколькими классами

пример:

public class Core { 
    protected int width = 3; 
    protected int hieght = 4; 
    protected int calc = 0; 

    public int calculate(){ 
     calc = width * hieght; 
     return calc ; 
    } 
} 

Fragmenta код:

public class FragmentA extends Fragment { 
     public Core core = new Core(); 
     public int resualt = core.calculate(); 

    private RelativeLayout  llLayout = null; 
    private FragmentActivity faActivity = null; 
     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
      faActivity = (FragmentActivity) super.getActivity(); 


      System.out.println(" resualt: " + resualt); 
      return inflater.inflate(R.layout.fragment_a,container,false); 
     } 

     public Core getCore(){ 
      return core; 
     } 

     public void doSomthing(){ 
      core.width +=1; 
      core.hieght -=1; 
      core.calc *=2; 
     } 
    } 

Теперь я хочу retrive объект в классе:

public class FragmentC extends Fragment { 

     //public Core core = object => here I dont know How to continu? 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
      return inflater.inflate(R.layout.fragment_c,container,false); 
     } 

     public void doSomthing(){ 
       core.width +=2; 
       core.hieght -=1; 
       core.calc *=5; 
      } 
    } 

Как я могу это сделать?

+0

http://stackoverflow.com/questions/26465290/how-to-call-object-from-one-class-other/26465404#26465404 – user2717954

ответ

1

Я думаю, что одним из подходов здесь будет использование Singleton pattern, поскольку вы всегда можете получить доступ к данным из него в любой части приложения. В вашем примере просто создайте класс Core Singleton и всегда получайте доступ к данным с помощью метода getInstance().

Другой способ просто передавая данные из FragmentFragment в использовании interfaces и Bundle, вы можете прочитать больше об этом here.

Смежные вопросы