1

我在从 sqlite 显示的 gridview 中有项目。现在使用另一个线程我从 json webservice 获取数据并将数据存储在 sqlite 现在我想在同一个网格视图中显示更新的项目以及现有项目。 .

  private void displayUpdate(String Bid) {

             Log.w("Update cALL","Executing Update");
            System.out.println("aeqw cursor that in display table value"+getid(Bid).getCount());
            Cursor cursorx =getid(Bid);

            int p=Integer.parseInt(Bid);
            System.err.println("Recieving Bid to displayUpdate method"+p);
            if (getid(Bid) != null)
            {
                while(cursorx.moveToFirst())
                {

                    Log.e("Entering Loop", "WHILE EXECUTING");
                    String temp_id1 = cursorx.getString(0);
                    System.err.println("Name related to Bid to displayUpdate method"+temp_id1);
                    final String temp_name1 = cursorx.getString(1);
                    System.err.println("Name related to Bid to displayUpdate method"+temp_name1);
                    String temp_author1=cursorx.getString(2);
                    String temp_desc1=cursorx.getString(3);
                    byte[] temp_image1 = cursorx.getBlob(4);
                    String temp_rating1 = cursorx.getString(5);
                    String temp_price1 = cursorx.getString(6);
                    String temp_update1=cursorx.getString(7);
                    System.err.println("Name related to Bid to displayUpdate method"+temp_name1);
                    mapIdUp.add(temp_id1);
                    mapNameUp.add(temp_name1);
                    mapAuthorUp.add(temp_author1);
                    mapDescUp.add(temp_desc1);
                    mapRatingUp.add(temp_rating1);
                    mapPriceUp.add(temp_price1);
                    mapUp.add(temp_image1);
                    mapUpdatedUp.add(temp_update1);
                        Log.e("temp_id from the sqlite", temp_id1);
                        Log.i(temp_name1, temp_name1);
                        Log.i(temp_desc1, temp_desc1);
                        Log.i(temp_rating1, temp_rating1);
                        Log.e(temp_update1,temp_update1);
                        String[] captionArray1 = (String[]) mapNameUp.toArray(new String[mapNameUp.size()]);
                    ItemsAdapter itemsAdapter1 = new ItemsAdapter(
                            Bookicon.this, R.layout.item,captionArray1);

                    gridView1=(GridView)findViewById(R.id.list);
                    gridView1.setAdapter(itemsAdapter1);
                    itemsAdapter1.notifyDataSetChanged();
                    gridView1.setOnItemClickListener(new OnItemClickListener() {
                        public void onItemClick(AdapterView<?> parent, View v, int position, long id)
                        {
                            Intent i = new Intent(getApplicationContext(), DetailsActivity.class);

                            i.putExtra("id", position);

                            startActivity(i);
                        }
                    });
                    break;
                }       
            }   

            }

在第二个线程中调用此方法以显示更新的书籍..

这个方法在哪里用于显示sqlite表中的所有项目

     private void getDataAndPopulate() 
    {

         Log.w("hello","zyuk,");

        Cursor cursor = getEvents("bcuk_book");

        while (cursor.moveToNext())
        {
             String temp_id = cursor.getString(0);
             final String temp_name = cursor.getString(1);
             String temp_author=cursor.getString(2);
             String temp_desc=cursor.getString(3);
             byte[] temp_image = cursor.getBlob(4);
             String temp_rating = cursor.getString(5);
             String temp_price = cursor.getString(6);
             String temp_update=cursor.getString(7);
             mapId.add(temp_id);
             mapName.add(temp_name);
             mapAuthor.add(temp_author);
             mapDesc.add(temp_desc);
             mapRating.add(temp_rating);
             mapPrice.add(temp_price);
             map.add(temp_image);
             mapUpdated.add(temp_update);
                Log.e("temp_id from the sqlite", temp_id);
                Log.i(temp_name, temp_name);
                Log.i(temp_desc, temp_desc);
                Log.i(temp_rating, temp_rating);
                Log.e(temp_update,temp_update);
                String[] captionArray = (String[]) mapName.toArray(new String[mapName.size()]);
                ItemsAdapter itemsAdapter = new ItemsAdapter(
                        Bookicon.this, R.layout.item,captionArray);
                gridView=(GridView)findViewById(R.id.list);
                gridView.setAdapter(itemsAdapter);
                gridView.setOnItemClickListener(new OnItemClickListener() {
                    public void onItemClick(AdapterView<?> parent, View v, int position, long id)
                    {

                        Intent i = new Intent(getApplicationContext(), DetailsActivity.class);

                        i.putExtra("id", position);

                        startActivity(i);
                    }
                });

        }   
        }

问题是我无法显示更新的内容,而它正在显示已存储的项目..

如果让我们假设当我用 6 即一条记录更新新项目时有 1、2、3、4、5 之类的项目,它正在显示第一项,即 1。如果更新 2 条记录,那么它只显示前两条记录。

如何解决这个问题

4

0 回答 0