0

ユーザーに DataSnap サーバーへの接続を提供する Android アプリケーションで実際に作業していますが、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; 
    };
 }

誰かが私を助けることができれば、それはいいでしょう。ありがとう =) よろしく、ピエール

4

2 に答える 2

0

通常、Java では、いくつかの属性を持つクラスがある場合、それらにアクセスできるようにする方法がいくつかあります。

  1. 属性を公開する
  2. 属性を非公開にし、get メソッドと set メソッドを提供します。慣例では、属性名の最初の文字を大文字にして get または set を使用します。これらのメソッドは公開する必要があります

他のクラスからのプライベート属性への直接アクセスを避けるため、通常はソリューション n.2 が最適です (カプセル化を参照)。

一般的に、あなたのケースではありませんが、属性を宣言するときにアクセスを「デフォルト」にするので、同じパッケージで NetworkManager を拡張する別のクラスからアクセスできます。

このクラスが単なる構成パラメーター ホルダーである場合は、この属性を static および public にすることもできるため、それらにアクセスするためにクラスをインスタンス化する必要はありません。

于 2013-05-06T14:48:17.040 に答える
0

オブジェクトを返す public メソッドを NetworkManager クラスに配置します。たとえば、 public TServerMethods1 getProxy(){ return proxy; }

于 2013-05-06T14:25:36.800 に答える