我正在製作一個雞尾酒的Android應用程序。Android應用程序檢索數據從API(模型到活動)
我搜索雞尾酒的名字,然後收到我使用的API中所有雞尾酒的列表視圖。我點擊列表視圖中的項目(雞尾酒),然後在新活動(名爲CocktailDisplay)中顯示雞尾酒(名稱,縮略圖,配料等)的信息。我通過意向傳遞SearchCocktail活動中的雞尾酒的名稱。從那裏,我只是在CocktailDisplay中顯示該文本。
我想從顯示雞尾酒的圖像和名稱開始。
我遇到了麻煩,新的幫助,訪問模型以獲取縮略圖所需的信息以及最終的成分和其他信息。
我是新來的android開發,所以我不知道我是否在正確的道路上。
在此先感謝!這是我的代碼。
SearchActivity.java(通過部分數據到CocktailDisplay.java)
ListView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
DrinkRecipeModel value = (DrinkRecipeModel) ListView1.getItemAtPosition(position);
// selected item
String cocktail = value.getDrinkName();
Intent myIntent = new Intent(getApplicationContext(), CocktailDisplay.class);
// sending data to new activity
myIntent.putExtra("selected-item", cocktail);
startActivity(myIntent);
}
});
DrinkRecipeModel.java
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
public class DrinkRecipeModel {
@SerializedName("idDrink")
private int drinkId;
@SerializedName("strDrink")
private String drinkName;
@SerializedName("categories")
private String drinkCategories;
@SerializedName("strDrinkThumb")
private String drinkThumb;
@SerializedName("ingredients")
private ArrayList<String> ingredients;
public int getDrinkId() {
return drinkId;
}
public String getDrinkName(){
return drinkName;
}
public String getDrinkCategories(){
return drinkCategories;
}
public String getDrinkThumb(){
return drinkThumb;
}
public ArrayList<String> getIngredients() { return ingredients; }
public void setDrinkId(int drinkId) { this.drinkId = drinkId; }
public void setDrinkName(String drinkName) { this.drinkName = drinkName; }
public void setDrinkCategories(String drinkCategories) {
this.drinkCategories = drinkCategories;
}
public void setDrinkThumb(String drinkThumb) {
this.drinkThumb = drinkThumb;
}
public void setIngredients(ArrayList<String> ingredients) {
this.ingredients = ingredients;
}
}
activity_cocktail_display.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".CocktailDisplayActivity" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cocktailImage"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
android:layout_centerHorizontal="true"
android:maxHeight="80dp"
android:maxWidth="80dp"
android:minHeight="10dp"
android:minWidth="10dp" />
<TextView
android:id="@+id/cocktailName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/cocktailImage"
android:textStyle="bold"
android:layout_centerInParent="true" />
</RelativeLayout>
CocktailDisplay.java
public class CocktailDisplay extends Activity {
TextView cocktailName;
ImageView cocktailImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cocktail_display);
cocktailName = (TextView) findViewById(R.id.cocktailName);
cocktailImage = (ImageView) findViewById(R.id.cocktailImage);
// get the intent from which this activity is called.
Intent intent = getIntent();
// ***** Trying to access model data here...not happy *****
DrinkRecipeModel recipe = *not sure how to call*;
// fetch value from key-value pair and make it visible on TextView.
String item = intent.getStringExtra("selected-item");
cocktailName.setText(item);
// fetch value from key-value pair and make it visible on ImageView.
// ***** Trying to access thumbnail here...not happy *****
cocktailImage.setImageResource(recipe.getDrinkId());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_cocktail_display, menu);
return true;
}
}
您是否從Webservice獲得響應? – KishuDroid