【发布时间】:2014-02-13 08:50:10
【问题描述】:
我关注了tutorial,了解如何为移动设备构建后端,并且能够为我的 Android 应用程序创建后端并在 GAE 上存储实体。问题是,我不知道如何检索我的实体。要存储实体,我使用了以下代码:
public class EndpointsTask extends AsyncTask<Context, Integer, Long> {
protected Long doInBackground(Context... contexts) {
Userendpoint.Builder endpointBuilder = new Userendpoint.Builder(
AndroidHttp.newCompatibleTransport(),
new JacksonFactory(),
new HttpRequestInitializer() {
public void initialize(HttpRequest httpRequest) { }
});
Userendpoint endpoint = CloudEndpointUtils.updateBuilder(
endpointBuilder).build();
try {
User user = new User();
String username;
if (responseCheckbox.isChecked()) {
username = MainActivity.getPersonName();
}
else {
username = usernameTextField.getText().toString();
}
String location = locationTextField.getText().toString();
String tempAge = ageTextField.getText().toString();
String tempWeight = weightTextField.getText().toString();
String gender = genderTextField.getText().toString();
String occupation = occupationTextField.getText().toString();
int age = Integer.parseInt(tempAge);
int weight = Integer.parseInt(tempWeight);
user.setUsername(username);
user.setLocation(location);
user.setAge(age);
user.setWeight(weight);
user.setGender(gender);
user.setOccupation(occupation);
@SuppressWarnings("unused")
User result;
result = endpoint.insertUser(user).execute();
} catch (IOException e) {
e.printStackTrace();
}
return (long) 0;
}
}
在我的onCreate() 方法中调用new EndpointsTask().execute(getApplicationContext());。
要检索实体的属性并使用TextViews 显示它们,这是我尝试过的:
public class EndpointsTask extends AsyncTask<Context, Integer, Long> {
protected Long doInBackground(Context... contexts) {
Userendpoint.Builder endpointBuilder = new Userendpoint.Builder(
AndroidHttp.newCompatibleTransport(),
new JacksonFactory(),
new HttpRequestInitializer() {
public void initialize(HttpRequest httpRequest) { }
});
Userendpoint endpoint = CloudEndpointUtils.updateBuilder(
endpointBuilder).build();
try {
User user = new User();
usernameTextView.setText(user.getUsername());
locationTextView.setText(user.getLocation());
ageTextView.setText(user.getAge());
occupationTextView.setText(user.getOccupation());
weightTextView.setText(user.getWeight());
genderTextView.setText(user.getGender());
User result = endpoint.getUser(user.getUsername()).execute();
} catch (Exception e) {
e.printStackTrace();
}
return (long) 0;
}}
然后在我的onCreate() 方法中调用new EndpointsTask().execute(getApplicationContext());。当我尝试运行该应用程序时,我什么也没得到。
我花了几个小时寻找如何做到这一点,但我只找到有关保存实体的教程。
任何帮助将不胜感激。
【问题讨论】:
-
你能发布你的用户实体源代码吗?
-
还有你的 Userendpoint getUser 方法
-
@gomino 请找这两个here
-
好的,现在,您是要加载所有用户,还是只加载一个?
-
我正在尝试加载登录到我的应用程序的用户。并以“个人资料页面”的形式显示详细信息
标签: java android google-app-engine google-cloud-endpoints