Android - Как получить доступ к контенту класса из другого?
На самом деле я работаю над приложением Android, которое предоставляет пользователю соединение с сервером DataSnap, но у меня возникла проблема с моим классом NetworkManager.
Хотелось бы, чтобы у меня был доступ к его содержимому (пользователь, хост, порт...), но я не могу и не нашел решения в Интернете (или, может быть, я не прочитал все сообщения)
Вот мой код для сетевого менеджера:
package com.smdroid;
import com.embarcadero.javaandroid.DSProxy.TServerMethods1;
import com.embarcadero.javaandroid.DSRESTConnection;
public class NetworkManager{
DSRESTConnection conn = new DSRESTConnection();
TServerMethods1 proxy;
int servId = 0;
}
и где я хочу позвонить своему классу и получить доступ к контенту:
public class ServerMenu extends Fragment {
TJSONArray servList;
NetworkManager nm = NetworkManager;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View servView = inflater.inflate(R.layout.server_menu, container, false);
try {
System.out.println(nm.proxy.ReverseString("reverse test"));
} catch (DBXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return servView;
};
}
Если бы кто-то мог мне помочь, было бы неплохо. Спасибо вам =) С уважением, Пьер
2 ответа
Обычно в Java, когда у вас есть класс с некоторыми атрибутами, есть несколько способов сделать их доступными.
- Сделать атрибуты общедоступными
- Сделайте атрибуты приватными и предоставьте методы get и set. Условием является использование get или set с первой буквой имени атрибута в верхнем регистре. Эти методы должны быть публичными
Обычно решение n.2 является лучшим, потому что вы избегаете прямого доступа к закрытым атрибутам из других классов (см. Инкапсуляция).
В общем, но не в вашем случае, когда вы объявляете атрибуты так, как вы это сделали, вы делаете их доступ "по умолчанию", чтобы вы могли получить к ним доступ из другого класса, расширяющего ваш NetworkManager в том же пакете.
Если этот класс является просто держателем параметров конфигурации, вы можете даже сделать эти атрибуты статическими и общедоступными, поэтому вам не нужно создавать экземпляр класса для доступа к ним.
Поместите в свой класс NetworkManager открытый метод, который возвращает объекты - например,
public TServerMethods1 getProxy(){
return proxy;
}