REST API から情報を取得すると、次のように表示されます。
"Per 78g - Calories: 221kcal | Fat: 12.65g | Carbs: 16.20g | Protein: 10.88g"
アイテムを ListView にインポートしました。ユーザーがアイテムをクリックすると、以下のように各数値をテキストなしで個別に文字列化したいと思います。上記の例に基づいて:
String calories = 221;
String fat = 12.65;
String carbs = 16.20;
String protein = 10.88;
「78gあたり」を次のように取り除きました。
String sd = food.getString("food_description");
String[] row = sd.split("-");
tems.add(new Item(food.getString("food_name"), row[1]));
各リスト項目に以下を表示します。
"Calories: 221kcal | Fat: 12.65g | Carbs: 16.20g | Protein: 10.88g"
ユーザーがリスト項目をクリックしたとき: これを適切に分離し、テキストも削除するにはどうすればよいですか? 数値を個別に取得したら、問題ありません。
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
String calories = adapter.getItem(arg2).getDescription();
String[] calRow = calories.split("?|?");
Toast.makeText(getActivity(), "" + calRow[1], Toast.LENGTH_LONG).show();
mCallback.onFoodSelected(adapter.getItem(arg2).getTitle(), calRow[1]);
}
API のドキュメントは非常に悪く、時代遅れです。情報量が多いので利用しています。これが悪い習慣だと信じているすべての人にとって、これは返される JSON の例です。
{
"foods":{
"food":{
"food_description":"Per 342g - Calories: 835kcal | Fat: 32.28g | Carbs: 105.43g | Protein: 29.41g",
"food_id":"4384",
"food_name":"Plain French Toast",
"food_type":"Generic",
"food_url":"http:\/\/www.fatsecret.com\/calories-nutrition\/generic\/french-toast-plain"
},
"max_results":"20",
"page_number":"0",
"total_results":"228"
}
}