2014-02-18 31 views
-3

最近我一直在研究很多关于Android开发的内容,为了真正体会它的感觉,我想开始构建一个简单的应用程序,以便让我走。不幸的是,我认为我读得越多,我就越困惑。简单的Android应用程序的正确方法

我想构建一个应用程序,该应用程序扫描并读取条形码,从条形码中读取EAN并查询RESTful Web服务,并输出产品的名称。

现在,扫描部分很容易,因为我使用zxing库作为intent服务。然后,我用一个叫做Volley的框架玩了很多,它应该处理与web服务的网络通信并解析JSON结果。不幸的是,我无法将Volley与我的应用程序集成,但是这种方便的工具可能比我实际需要的要多。

实现上述目标的正确方法是什么?我是否需要内容提供商?我需要服务吗?这些如何相互关联?

回答

1

我还没有和Volley一起工作过,所以我不能给你一个答案,如果它太高级了,你想达到目的。一般来说,当涉及到与服务器的HTTP通信时,我更喜欢使用AndroidAsyncHttpClient

“基于Apache的HttpClient库构建的基于异步回调的Http客户端,所有请求都在应用程序的主UI线程之外,但任何回调逻辑都将在使用Android的Handler消息传递创建回调的同一线程上执行。“

public class YourActivity extends Activity { 

    private void handleScannedBardcode(String barcode) { 
     // you need to make the request match the REST API you are using 
     RequestParams params = new RequestParams(); 
     params.put("A_KEY_TO_IDENTIFY_THE_PARAMETER", barcode); 

     AsyncHttpClient client = new AsyncHttpClient(); 
     client.post("http://www.yourserver.com", params, new AsyncHttpResponseHandler() { 
      @Override 
      public void onSuccess(String response) { 
       // you need to add parsing of JSON data to match the response 
       JSONObject jo = new JSONObject(response); 
       String productName = jo.getString("productname"); 
       updateProductView(productName); 
      } 
     }); 
    } 

    private void updateProductView(String productName) { 
     // you need to use a view id that corresponds to a textview in your layout xml 
     TextView tv = (TextView)findViewById(R.id.productName); 
     tv.setText(productName); 
    } 
} 

根据JSON响应多么复杂,你可以为GSONJackson选择大量JSON解析或纯JSONObject

+0

这似乎是一个很好的图书馆,绝对看起来比Volley更容易使用。但是,这仍然是问题的一部分。这与我的概念验证应用程序的其余部分如何结合? – Zorrocaesar

+0

我添加了关于JSON解析的评论。你可以在上面的onSuccess()方法中解析JSON。一旦你有了解析的JSON,你需要用解析的数据更新你的视图。我会更充实我的例子。 – britzl

+0

更新了一个更相关的示例。如果它还不够清楚,你需要发布一些代码。 – britzl

1

:有关你想要做什么

例先用简单的解决方案:

  • 使用HttpURLConnection连接到web服务,
  • 然后使用InputStreamReaderBufferedInputStream来读取来自连接的输入流。
  • 创建一个JSON模型类,类似于从Web服务获得的模型类。
  • 使用Google GSON库将响应解析为JSONResponse,然后使用该数据。

我相信你可以找到足够的关于这些个人点的帮助来让你开始。

相关问题