2016-09-18 13 views
0

このコードを使用して残りのサービスから取得するために、loopjを使用するすべての従業員のリストを取得しました。loopjでは、取得リクエストのURLに値を渡す方法

public class MainActivity extends ActionBarActivity { 
private ListView employeeList; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
getEmployees(); 
} 
    private void getEmployees() { 
     List<Header> headers = new ArrayList<Header>(); 
     headers.add(new BasicHeader("Accept", "application/json")); 

     EmployeeRestClient.get(MainActivity.this, "RestExample/employee", 
     headers.toArray(new Header[headers.size()]),null, 
      new JsonHttpResponseHandler() { 
     @Override 
     public void onSuccess(int statusCode, Header[] headers, JSONArray response) { 
     ArrayList<Employee> employeeArray = new ArrayList<Employee>(); 
     EmployeeAdapter employeeAdapter = new EmployeeAdapter(MainActivity.this, employeeArray); 

      for (int i = 0; i < response.length(); i++) { 
      try { 
        employeeAdapter.add(new Employee(response.getJSONObject(i))); 
       } catch (JSONException e) { 
       e.printStackTrace(); 
        } 
       } 

      employeeList = (ListView) findViewById(R.id.list_employees); 
      employeeList.setAdapter(employeeAdapter); 
      } 
     }); 
    } 

は私がselect * from employees where age = ? だから私は年齢値がListViewemployeeList)、データソースを初期化しRestExample/employee/{age}

答えて

1

のようなURLに渡すのですかどのようgetEmployees(Long age)方法で(と従業員のリストを取得したいですemployeeArray)とアダプタ(employeeAdapter)をonSuccessの方法で実行するのではなく、onCreateの中に入れてください。

employeeList = (ListView) findViewById(R.id.list_employees); 
employeeArray = new ArrayList<Employee>(); 
employeeAdapter = new EmployeeAdapter(MainActivity.this, employeeArray); 
employeeList.setAdapter(employeeAdapter); 

あなたgetEmployees方法、

private void getEmployees(Long age) { 
    List<Header> headers = new ArrayList<Header>(); 
    headers.add(new BasicHeader("Accept", "application/json")); 

    EmployeeRestClient.get(MainActivity.this, "RestExample/employee/" + age, 
     headers.toArray(new Header[headers.size()]), null, 
     new JsonHttpResponseHandler() { 

     @Override 
     public void onSuccess(int statusCode, Header[] headers, JSONArray response) { 
      for (int i = 0; i < response.length(); i++) { 
       try { 
        employeeArray.add(new Employee(response.getJSONObject(i))); 
       } catch (JSONException e) { 
       e.printStackTrace(); 
       } 
      } 
      // notify the adapter that the data has changed 
      employeeAdapter.notifyDataSetChanged(); 
     } 

    }); 
} 
+0

@neerajは、私が "+年齢" に値を渡す必要がいけませんか?年齢= 25のように、年齢の値を取得するためにonItemSelectedを使用したスピナーで、25歳のすべての従業員をリストするようにします。 onItemSelectedの – user3785322

+0

私はpositionを使って、選択したアイテムの年齢を取得し、その値をurlに渡して目的の結果を得ました。ここのように私は特定の年齢の従業員をリストしたいと思います。休憩サービスで私のURLはexamplerestservice/employee /年齢で{年齢}私は25を与え、結果を得るでしょう。そのように私はWebサービスを消費し、リストをフェッチするクライアントのURLに値を渡す必要があります – user3785322

+0

これはまさにこれが何をしています。 –

関連する問題