adapter使用cursor读取数据库并需要在首项设置特殊项的解决方法

在出门问问实习做的时间最长的一项是做新的Alarm,其中Alarm列表用的是公司自己写的CursorRecyclerviewAdapter,可以用cursor读取Alarm的数据库。现在需要在列表的首项加一项“添加新闹钟”,点击用来设置新的闹钟,因此存在一个问题,不解决的话读取的第一个闹钟会放在首项被特殊项覆盖。

以下是解决问题所写的代码:

        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            if (viewType == TYPE_ADD_ALARM_ITEM) {
                return new AddAlarmViewHolder(mInflater.inflate(R.layout.alarm_list_add_alarm_item, parent, false));
            }
            return new AlarmViewHolder(mInflater.inflate(R.layout.alarm_list_item, parent, false));
        }

        @Override
        public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, Cursor cursor) {
            if (viewHolder instanceof AddAlarmViewHolder) {
                AddAlarmViewHolder addAlarmViewHolder = (AddAlarmViewHolder) viewHolder;
                //    
            } else 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DevExpress控件提供了一些用于读取和展示Excel数据的工具。以下是一些步骤来使用DevExpress控件实现在数据库读取Excel并在窗体上展示数据: 1. 首先,需要使用DevExpress的SpreadsheetControl控件来加载Excel文件并将其转换为数据表。可以使用以下代码来实现: ``` using DevExpress.XtraSpreadsheet; using DevExpress.XtraSpreadsheet.Services; using System.Data; //加载Excel文件 SpreadsheetControl spreadsheetControl = new SpreadsheetControl(); spreadsheetControl.LoadDocument("your_file_path"); //获取数据表 IWorkbook workbook = spreadsheetControl.Document; IWorksheet worksheet = workbook.Worksheets[0]; DataTable dataTable = worksheet.CreateDataTable(worksheet.GetDataRange()); ``` 2. 接下来,需要将数据表中的数据插入到数据库中。可以使用以下代码来实现: ``` using System.Data.SqlClient; //连接数据库 string connectionString = "your_connection_string"; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); //插入数据 foreach (DataRow row in dataTable.Rows) { SqlCommand command = new SqlCommand("INSERT INTO your_table_name (column1, column2, ...) VALUES (@value1, @value2, ...)", connection); command.Parameters.AddWithValue("@value1", row["column1"]); command.Parameters.AddWithValue("@value2", row["column2"]); //... command.ExecuteNonQuery(); } //关闭连接 connection.Close(); ``` 3. 最后,可以使用DevExpress的GridControl控件展示从数据库读取的数据。可以使用以下代码来实现: ``` using DevExpress.XtraGrid.Views.Grid; //连接数据库 string connectionString = "your_connection_string"; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); //查询数据 string query = "SELECT * FROM your_table_name"; SqlDataAdapter adapter = new SqlDataAdapter(query, connection); DataTable dataTable = new DataTable(); adapter.Fill(dataTable); //绑定数据到GridControl控件 gridControl.DataSource = dataTable; gridControl.ForceInitialize(); //设置列的显示格式 GridView gridView = gridControl.MainView as GridView; gridView.Columns["column1"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; gridView.Columns["column1"].DisplayFormat.FormatString = "c2"; gridView.Columns["column2"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; gridView.Columns["column2"].DisplayFormat.FormatString = "dd/MM/yyyy"; //... //关闭连接 connection.Close(); ``` 以上是使用DevExpress控件实现在数据库读取Excel并展示在窗体上的步骤。需要注意的是,这里只是提供了一种实现方法,具体的实现方式可能会因为目需求的不同而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值