gpt4 book ai didi

android - 试图避免多个布局级别

转载 作者:行者123 更新时间:2023-11-30 03:27:34 25 4
gpt4 key购买 nike

我正在为列表中的一行制作布局。其中一列包含“工作时间”,它分两部分从数据库中获取数据:开始和完成。我正在使用游标加载器将数据导入 UI。所以我的问题是,如果将 2 时间分开存储,那么将开始和结束的数据组合成 12:00~4:00 这样的格式的最佳方法是什么?我想过再放一个线性布局,但似乎很浪费。有什么建议吗?

编辑:

这是我的 Loader 回调,我认为非常标准。

@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
String[] projection = Columns.getColumns(RawContract.PARAM_SIWORKDAYS);

CursorLoader cursorLoader = new CursorLoader(mContext,
BidProvider.CONTENT_URI_SIWORKDAYS, projection, null, null, null);
return cursorLoader;
}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mAdapter.swapCursor(data);
}

@Override
public void onLoaderReset(Loader<Cursor> loader) {
mAdapter.swapCursor(null);
}

我是这样用的

private void fillData() {

String[] from = new String[] { Columns.COLUMN_WORKDATE,
Columns.COLUMN_DAYCHARGE, Columns.COLUMN_TEMPERATURE,
Columns.COLUMN_WORKFROMHR, Columns.COLUMN_WORKTOHR,
Columns.COLUMN_WEATHER, Columns.COLUMN_CREATEDBY,
Columns.COLUMN_CREATEDDATE };
int[] to = new int[] { R.id.contractor, R.id.contract_num, R.id.title,
R.id.value, R.id.status, R.id.dept_name, R.id.start, R.id.close };

getLoaderManager().initLoader(0, null, this);

mAdapter = new SimpleCursorAdapter(mContext, R.layout.contract_row, null, from,
to, 0);

setListAdapter(mAdapter);
}

所以我想我的意思是我从不手动从光标中提取数据,所以我不确定将这两个数据放在一起的最佳方法是什么。

最佳答案

我认为将自定义 CursorAdapter 与 ViewHolder 一起使用会更好。

private static class MyCursorAdapter extends CursorAdapter {
private final Context context;
private final LayoutInflater layoutInflater;

public MyCursorAdapter(Context context, Cursor c, boolean autoRequery) {
super(context, c, autoRequery);
this.context = context;
this.layoutInflater = (LayoutInflater) context.getSystemService(Service.LAYOUT_INFLATER_SERVICE);
}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
View v = layoutInflater.inflate(R.layout.my_list_item, parent, false);
holder.startFinishTimeView = (TextView) v.findViewById(R.id.startFinishTimeView);
holder.content = v.findViewById(R.id.content);
v.setTag(holder);
return v;
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder holder = (ViewHolder) view.getTag();
holder.startFinishTimeView.setText(<past here your formated time from Cursor>);
}

private static class ViewHolder {
TextView startFinishTimeView;
View content;
}
}

关于android - 试图避免多个布局级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17997758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com