Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ListView适配器问题 公共类SearchRecipe扩展了AppCompative活动{ ArrayList lst=新的ArrayList(); 私有列表视图列表视图; 进展对话; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity\u search\u recipe); pg=ProgressDialog.show(这是“正在加载”,“请稍候”,true); getDataBase3(); } public void getDataBase3(){ myFirebaseRef.child(“Recipes”).addListenerForSingleValueEvent(新值EventListener()){ @凌驾 公共void onDataChange(DataSnapshot DataSnapshot){ 对于(DataSnapshot快照:DataSnapshot.getChildren()){ Recipe Recipe=snapshot.getValue(Recipe.class); 添加(配方); } init(); } @凌驾 取消后的公共无效(FirebaseError FirebaseError){ Toast.makeText(SearchRecipe.this,“Failed”,Toast.LENGTH_SHORT.show(); } }); } 私有void init(){ listView=(listView)findViewById(R.id.listView\u searchRecipe); UsersAdapter adapter=新的UsersAdapter(this,lst); setAdapter(适配器); setOnItemClickListener(新的AdapterView.OnItemClickListener(){ @凌驾 public void onItemClick(AdapterView父对象、视图、整型位置、长id){ 意向意向=新意向(SearchRecipe.this,ShowRecipe.class); intent.putExtra(“recipeName”,lst.get(position.getRecipeName()); 星触觉(意向); 完成(); } }); 第()页; } 公共类UsersAdapter扩展了ArrayAdapter{ public UsersAdapter(android.content.Context上下文,ArrayList名称){ 超级(上下文,0,名称); } @凌驾 公共视图getView(int位置、视图转换视图、视图组父视图){ 配方用户=getItem(位置); if(convertView==null){ convertView=LayoutInflater.from(getContext()).flate(R.layout.recipe\u row\u layout,parent,false); TextView tvname=(TextView)convertView.findViewById(R.id.recipeTV2_行); TextView-tvlike=(TextView)convertView.findViewById(R.id.likes_行); TextView-tvUnlike=(TextView)convertView.findViewById(R.id.unlike_行); setText(user.getRecipeName()); tvlike.setText(“+user.getLikes()); tvdislike.setText(“+user.getDislikes()); } 返回视图; } }_Android_Listview_Firebase_Firebase Realtime Database_Android Adapter - Fatal编程技术网

ListView适配器问题 公共类SearchRecipe扩展了AppCompative活动{ ArrayList lst=新的ArrayList(); 私有列表视图列表视图; 进展对话; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity\u search\u recipe); pg=ProgressDialog.show(这是“正在加载”,“请稍候”,true); getDataBase3(); } public void getDataBase3(){ myFirebaseRef.child(“Recipes”).addListenerForSingleValueEvent(新值EventListener()){ @凌驾 公共void onDataChange(DataSnapshot DataSnapshot){ 对于(DataSnapshot快照:DataSnapshot.getChildren()){ Recipe Recipe=snapshot.getValue(Recipe.class); 添加(配方); } init(); } @凌驾 取消后的公共无效(FirebaseError FirebaseError){ Toast.makeText(SearchRecipe.this,“Failed”,Toast.LENGTH_SHORT.show(); } }); } 私有void init(){ listView=(listView)findViewById(R.id.listView\u searchRecipe); UsersAdapter adapter=新的UsersAdapter(this,lst); setAdapter(适配器); setOnItemClickListener(新的AdapterView.OnItemClickListener(){ @凌驾 public void onItemClick(AdapterView父对象、视图、整型位置、长id){ 意向意向=新意向(SearchRecipe.this,ShowRecipe.class); intent.putExtra(“recipeName”,lst.get(position.getRecipeName()); 星触觉(意向); 完成(); } }); 第()页; } 公共类UsersAdapter扩展了ArrayAdapter{ public UsersAdapter(android.content.Context上下文,ArrayList名称){ 超级(上下文,0,名称); } @凌驾 公共视图getView(int位置、视图转换视图、视图组父视图){ 配方用户=getItem(位置); if(convertView==null){ convertView=LayoutInflater.from(getContext()).flate(R.layout.recipe\u row\u layout,parent,false); TextView tvname=(TextView)convertView.findViewById(R.id.recipeTV2_行); TextView-tvlike=(TextView)convertView.findViewById(R.id.likes_行); TextView-tvUnlike=(TextView)convertView.findViewById(R.id.unlike_行); setText(user.getRecipeName()); tvlike.setText(“+user.getLikes()); tvdislike.setText(“+user.getDislikes()); } 返回视图; } }

ListView适配器问题 公共类SearchRecipe扩展了AppCompative活动{ ArrayList lst=新的ArrayList(); 私有列表视图列表视图; 进展对话; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity\u search\u recipe); pg=ProgressDialog.show(这是“正在加载”,“请稍候”,true); getDataBase3(); } public void getDataBase3(){ myFirebaseRef.child(“Recipes”).addListenerForSingleValueEvent(新值EventListener()){ @凌驾 公共void onDataChange(DataSnapshot DataSnapshot){ 对于(DataSnapshot快照:DataSnapshot.getChildren()){ Recipe Recipe=snapshot.getValue(Recipe.class); 添加(配方); } init(); } @凌驾 取消后的公共无效(FirebaseError FirebaseError){ Toast.makeText(SearchRecipe.this,“Failed”,Toast.LENGTH_SHORT.show(); } }); } 私有void init(){ listView=(listView)findViewById(R.id.listView\u searchRecipe); UsersAdapter adapter=新的UsersAdapter(this,lst); setAdapter(适配器); setOnItemClickListener(新的AdapterView.OnItemClickListener(){ @凌驾 public void onItemClick(AdapterView父对象、视图、整型位置、长id){ 意向意向=新意向(SearchRecipe.this,ShowRecipe.class); intent.putExtra(“recipeName”,lst.get(position.getRecipeName()); 星触觉(意向); 完成(); } }); 第()页; } 公共类UsersAdapter扩展了ArrayAdapter{ public UsersAdapter(android.content.Context上下文,ArrayList名称){ 超级(上下文,0,名称); } @凌驾 公共视图getView(int位置、视图转换视图、视图组父视图){ 配方用户=getItem(位置); if(convertView==null){ convertView=LayoutInflater.from(getContext()).flate(R.layout.recipe\u row\u layout,parent,false); TextView tvname=(TextView)convertView.findViewById(R.id.recipeTV2_行); TextView-tvlike=(TextView)convertView.findViewById(R.id.likes_行); TextView-tvUnlike=(TextView)convertView.findViewById(R.id.unlike_行); setText(user.getRecipeName()); tvlike.setText(“+user.getLikes()); tvdislike.setText(“+user.getDislikes()); } 返回视图; } },android,listview,firebase,firebase-realtime-database,android-adapter,Android,Listview,Firebase,Firebase Realtime Database,Android Adapter,lst工程的填充-有价值观和正确的价值观。 当列表到达大约位置8时,它开始替换列表视图中的名称(如果列表中的数字8是“狗”,数字1是“猫”,它将显示数字8,数字1都是“猫”,但当您单击1时,它将使其变为1,当您单击8时,它将使您变为8,即正确的位置!) 所以问题在于ListView的显示方式——它显示了错误的值,当您单击它们时,它会将您带到正确的位置 谢谢大家。ListView已被弃用,只需使用RecyclerView,它更轻、更容易使用(如果您仍有问题,请发布) 谷歌的RecyclerView

lst工程的填充-有价值观和正确的价值观。 当列表到达大约位置8时,它开始替换列表视图中的名称(如果列表中的数字8是“狗”,数字1是“猫”,它将显示数字8,数字1都是“猫”,但当您单击1时,它将使其变为1,当您单击8时,它将使您变为8,即正确的位置!)

所以问题在于ListView的显示方式——它显示了错误的值,当您单击它们时,它会将您带到正确的位置


谢谢大家。

ListView已被弃用,只需使用RecyclerView,它更轻、更容易使用(如果您仍有问题,请发布)

谷歌的RecyclerView示例:

可搜索和可扩展的recycerview示例(在对话框容器中,尽管想法相同):

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;
        }

    }