0

有什么方法可以在单击按钮时刷新表适配器屏幕。如果我在单击按钮时再次调用表格方法,那么它将在旧的下方添加一个新的表格适配器屏幕.....我有什么方法可以刷新现有屏幕。按钮正在从表格中删除元素,之后我想要刷新它。

    public static void richlistshow(){
        int ik = target_list.size()-1;
       while(ik > 0 )
       {
           Bitmap logoBitmap = Bitmap.getBitmapResource("delete.png");       

           City aCity = (City)target_list.elementAt(ik);
           String modelNumber = aCity.get_city_name().toString();
           String modelName = " X ";
           //String ne = String.valueOf(ik);
           String date_time = "  Date-Time";

           Object[] row = {modelName, modelNumber,date_time,logoBitmap};
           _tableModel.addRow(row);
           ik--;
       }


     TableView tableView = new TableView(_tableModel);
     tableView.setDataTemplateFocus(BackgroundFactory.createLinearGradientBackground(Color.YELLOWGREEN, Color.LIMEGREEN, Color.SEAGREEN, Color.SANDYBROWN));
     TableController tableController = new TableController(_tableModel, tableView);
     tableController.setFocusPolicy(TableController.ROW_FOCUS);
     tableView.setController(tableController);


     // Specify a simple data template for displaying 3 columns
     DataTemplate dataTemplate = new DataTemplate(tableView, NUM_ROWS, NUM_COLUMNS)
     {
         public Field[] getDataFields(int modelRowIndex)
         {
             //final int i =modelRowIndex;
             Object[] data = (Object[]) (_tableModel.getRow(modelRowIndex));

             final String cname = (String)data[1];

             /****** Declaring button for deletion of record from database ******/
             ButtonField delete =new ButtonField("X",ButtonField.CONSUME_CLICK);

             /*******  Setting change listener and defining field change within *******/
             delete.setChangeListener(new FieldChangeListener() {

             /*******  defining what should happen when button is clicked ********/
                public void fieldChanged(Field field, int context) {

                    DatabaseHandler delete_row = new DatabaseHandler();
                    delete_row.deletetarget(cname);

            /****calling function to retrieve values from the databasse table.***/
                    delete_row.retrieveTarget();
            /****************calling method again to show the updated values*************/      
                richlistshow();//for showing refreshed data after deletion of a record

                }
            });

             Field[] fields = {delete, new LabelField((String) data[1]), new LabelField((String) data[2]),new BitmapField((Bitmap)data[3])};
             return fields;

         }

     };

     dataTemplate.useFixedHeight(true);
     // Define regions and row height
     dataTemplate.setRowProperties(0, new TemplateRowProperties(ROW_HEIGHT));

     for(int i = 0; i < NUM_COLUMNS; i++)
     {
         dataTemplate.createRegion(new XYRect(i, 0, 1, 1));
         dataTemplate.setColumnProperties(i, new TemplateColumnProperties(Display.getWidth() / NUM_COLUMNS));
     }



     // Apply the template to the view

     tableView.setDataTemplate(dataTemplate);

     mainManager.add(tableView);

}

public final static class MyCity
{
    private String _name;
    private String _datetime;
    private String _button;
    private Bitmap _bitmap;

    MyCity(String name, String datetime, String button, Bitmap bitmap)
    {
        _name = name;
        _datetime = datetime;
        _button = button;
        _bitmap = bitmap;
    }

    public String getName()
    {
        return _name;
    }
    public String getDatetime()
    {
        return _datetime;
    }
    public String getButton()
    {
        return _button;
    }
    public Bitmap getBitmap()
    {
        return _bitmap;
    }
}


/****************TABLE CONTROLLER CLASS ******************/
 private class CityTableModelAdapter extends TableModelAdapter
    {
        public int getNumberOfRows()
        {
            return _cities.size();
        }
        public int getNumberOfColumns()
        {
            return NUM_COLUMNS;
        }
        protected boolean doAddRow(Object row)
        {
            Object[] arrayRow = (Object[]) row;

            System.out.println("! : "+arrayRow[0]+" @: "+arrayRow[1]+" #: "+arrayRow[2]);

            _cities.addElement(new MyCity((String) arrayRow[0], (String) arrayRow[1], (String) arrayRow[2], (Bitmap) arrayRow[3]));
            return true;
        }
        protected Object doGetRow(int index)
        {
            MyCity mycity = (MyCity) _cities.elementAt(index);

            Object[] row = {mycity.getName(),mycity.getDatetime(),mycity.getButton(),mycity.getBitmap()};

            return row;

        }


    }
4

0 回答 0