0

Androidアプリケーションがsqlliteデータベースにデータを挿入するための2つの別々のクラスがあります

  1. このコンストラクタを持つ DataBaseAdapterClass

    public DatabaseAdapter(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    
    }
    
  2. 私は webservice と呼ばれる別のクラスを使用して、Web サービスからデータを取得し、sqllite データベースに挿入しています。この Asyntask クラスを使用するためです。

    public class FoodCityWebService {
    
        String myValue = "";
        private final String NAMESPACE="http://tempuri.org/";
        private final String URL = "xxxxxx:xxxx/Service1.asmx?WSDL";
    
        public FoodCityWebService(){
    
        }
    
        public FoodCityWebService(String param1){
    
        }
    
        public String getValueFromService()
        {
            myValue =  new web().execute("df").toString();
            return myValue;
        }
    
    
    
        public class web extends AsyncTask<String,Integer, String>
        { 
              String result = "";
              final String SOAP_ACTION="http://tempuri.org/GetUserName";
            @Override
            protected String doInBackground(String... params) {
    
                final String METHOD_NAME="GetUserName";
    
                SoapObject request=new SoapObject(NAMESPACE, METHOD_NAME);
                request.addProperty("name","Bread");
                SoapSerializationEnvelope envelop=new SoapSerializationEnvelope(SoapEnvelope.VER11);//ver11 version
                envelop.dotNet=true;//only for dotnet       
                envelop.setOutputSoapObject(request);
    
                 HttpTransportSE httptransportse=new HttpTransportSE(URL);
                 String x ="";
                try{
                httptransportse.call(SOAP_ACTION, envelop);
    
                SoapPrimitive response=(SoapPrimitive)envelop.getResponse();
    
    
    
                    x = response.toString();
    
                    DatabaseAdapter da = new DatabaseAdapter(); // *ERROR!!!*           
                    da.addItem(new Item("CityItem1","Bread",Double.parseDouble(x),"222"));
    
    
    
                }catch (Exception e) {
    
                    e.printStackTrace();
    
                }
    
                return x;
    
    
            }
    
    
            } 
    
    
     }
    

databseAdapter クラスからオブジェクトを作成するにはどうすればよいですか?

4

1 に答える 1

4

databseAdapter クラスからオブジェクトを作成するにはどうすればよいですか?

基本的なアプローチの 1 つは、Context をコンストラクターのパラメーターに追加し、それをメンバー変数として保存することです。

private Context mContext;
public FoodCityWebService(Context context){
    mContext = context;
}

次に使用します。

DatabaseAdapter da = new DatabaseAdapter(mContext); 
于 2013-04-03T14:31:55.010 に答える