private Cursor getContentName(String name_search) { selections = ContactsContract.Contacts.DISPLAY_NAME + "=?"; selection_args = new String[]{name_search}; Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, query_all, selections, selection_args, null); return cursor; }
时间: 2024-02-29 22:57:16 浏览: 10
这是一段 Android 平台上的代码,它的作用是查询通讯录中指定姓名的联系人信息,并返回一个 Cursor 对象。首先定义了一个 selections 字符串,用来指定查询条件,它的值为 ContactsContract.Contacts.DISPLAY_NAME + "=?",表示查询通讯录中 DISPLAY_NAME 列(即联系人姓名)等于指定的 name_search 的记录。然后定义了一个 selection_args 数组,它的值为 name_search,即要查询的联系人姓名。接着调用 getContentResolver().query() 方法查询通讯录,查询的 Uri 是 ContactsContract.CommonDataKinds.Phone.CONTENT_URI,表示查询通讯录中的电话号码信息。query_all 是一个字符串数组,表示要查询的列,它的值为 null,表示查询全部列。最后将 selections 和 selection_args 作为参数传入,表示查询条件,排序方式为 null,返回一个 Cursor 对象。
相关问题
var selections = $('table.var_table').datagrid('getSelections');什么意思
这是使用 jQuery EasyUI 插件中的 DataGrid 组件获取当前选中行数据的代码。
`$('table.var_table')`: 选择器选中了一个 class 为 `var_table` 的表格元素。
`.datagrid('getSelections')`: 调用 DataGrid 的 `getSelections` 方法,获取当前选中的所有行,返回一个数组。
`var selections = ...`: 将获取到的选中行数据赋值给变量 `selections`。
优化这段代码:def run(demand_file,depot_file,epochs,pc,pm,popsize,n_select,opt_type): model=Model() model.pc=pc model.pm=pm model.popsize=popsize model.n_select=n_select model.opt_type=opt_type readCSVFile(demand_file,depot_file,model) calDistanceMatrix(model) generateInitialSol(model) history_best_obj = [] best_sol=Sol() best_sol.obj=float('inf') model.best_sol=best_sol start_time=time.time() for ep in range(epochs): ''' 计算适应度''' calFitness(model) ''' 选择''' selectSol(model) ''' 交叉''' crossSol(model) ''' 变异''' muSol(model) ''' 记录最优目标''' history_best_obj.append(model.best_sol.obj) print("迭代次数: %s, 最优目标值: %s, 运行时间: %s" % (ep+1,model.best_sol.obj,time.time()-start_time)) plotObj(history_best_obj) plotRoutes(model) outPut(model)
1. 建议使用更具描述性的变量名,例如 `population_size` 代替 `popsize`, `num_selections` 代替 `n_select` 等等。这样可以提高代码的可读性和可维护性。
2. 可以将模型参数 `Model` 的初始化封装成一个函数,例如 `initialize_model_params`。
3. 可以将模型的训练过程封装成一个函数,例如 `train`。这样可以提高代码的可读性,同时也方便代码的复用和维护。
4. 可以将结果可视化和输出结果的代码封装成一个函数,例如 `show_results`。这样可以使代码更加简洁和易于阅读。
重构后的代码如下:
```
def run(demand_file, depot_file, epochs, pc, pm, population_size, num_selections, opt_type):
model = Model()
initialize_model_params(model, pc, pm, population_size, num_selections, opt_type, demand_file, depot_file)
history_best_obj = train(model, epochs)
show_results(model, history_best_obj)
def initialize_model_params(model, pc, pm, population_size, num_selections, opt_type, demand_file, depot_file):
model.pc = pc
model.pm = pm
model.popsize = population_size
model.n_select = num_selections
model.opt_type = opt_type
readCSVFile(demand_file, depot_file, model)
calDistanceMatrix(model)
generateInitialSol(model)
best_sol = Sol()
best_sol.obj = float('inf')
model.best_sol = best_sol
def train(model, epochs):
history_best_obj = []
start_time = time.time()
for ep in range(epochs):
calFitness(model)
selectSol(model)
crossSol(model)
muSol(model)
history_best_obj.append(model.best_sol.obj)
print("迭代次数: %s, 最优目标值: %s, 运行时间: %s" % (ep+1,model.best_sol.obj,time.time()-start_time))
return history_best_obj
def show_results(model, history_best_obj):
plotObj(history_best_obj)
plotRoutes(model)
outPut(model)
```