0
public class SearchRecipe extends AppCompatActivity {
ArrayList<Recipe> lst=new ArrayList<Recipe>();
private ListView listView;
ProgressDialog pg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_recipe);
pg = ProgressDialog.show(this, "Loading", "please wait", true);
getDataBase3();
}
public void getDataBase3() {
myFirebaseRef.child("Recipes").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Recipe recipe = snapshot.getValue(Recipe.class);
lst.add(recipe);
}
init();
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Toast.makeText(SearchRecipe.this, "Failed", Toast.LENGTH_SHORT).show();
}
});
}
private void init() {
listView= (ListView) findViewById(R.id.listview_searchRecipe);
UsersAdapter adapter = new UsersAdapter(this, lst);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent=new Intent(SearchRecipe.this,ShowRecipe.class);
intent.putExtra("recipeName",lst.get(position).getRecipeName());
startActivity(intent);
finish();
}
});
pg.dismiss();
}
public class UsersAdapter extends ArrayAdapter<Recipe> {
public UsersAdapter(android.content.Context context, ArrayList<Recipe> names) {
super(context, 0, names);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Recipe user = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.recipe_row_layout, parent, false);
TextView tvname= (TextView) convertView.findViewById(R.id.recipeTV2_row);
TextView tvlike= (TextView) convertView.findViewById(R.id.likes_row);
TextView tvdislike= (TextView) convertView.findViewById(R.id.dislike_row);
tvname.setText(user.getRecipeName());
tvlike.setText(""+user.getLikes());
tvdislike.setText(""+user.getDislikes());
}
return convertView;
}
}
第一作品的填充 - 有價值觀和正確的作品。 當列表到達關於位置8時,它開始替換ListView中的名稱(如果列表中的數字8是「狗」,數字1是「貓」,它將顯示數字8,數字1是「貓」,但是當你點擊1時它會將它帶到1,當你點擊8時它會帶給你8個正確的!)ListView適配器問題
所以問題是與ListView的呈現 - 它顯示錯誤的值,以及何時你點擊它們會將你帶到正確的地方。
謝謝你們。