我使用下面的代码获得了使用loopj从rest服务获取的所有员工的列表。
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 = ?获取雇员列表,那么在getEmployees(Long age)方法中,我如何获得年龄值,以便像RestExample/employee/{age}一样传递到url中
发布于 2016-09-18 23:03:07
在onCreate中初始化ListView (employeeList)、数据源(employeeArray)和适配器(employeeAdapter),而不是在onSuccess方法中执行。
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();
}
});
}https://stackoverflow.com/questions/39558615
复制相似问题