Update NotesListItem.java

main
pf45q8f3g 7 months ago
parent 87d663816f
commit b52d6629a6

@ -1,132 +1,141 @@
/* /*
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) * (c) 2010-2011, MiCode (www.micode.net)
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * 使 Apache License, Version 2.0
* you may not use this file except in compliance with the License. * 使
* You may obtain a copy of the License at *
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software *
* distributed under the License is distributed on an "AS IS" BASIS, *
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
* See the License for the specific language governing permissions and
* limitations under the License.
*/ */
package net.micode.notes.ui; package net.micode.notes.ui;
import android.content.Context; import android.content.Context;
import android.text.format.DateUtils; import android.text.format.DateUtils;
import android.view.View; import android.view.View;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import net.micode.notes.R; import net.micode.notes.R;
import net.micode.notes.data.Notes; import net.micode.notes.data.Notes;
import net.micode.notes.tool.DataUtils; import net.micode.notes.tool.DataUtils;
import net.micode.notes.tool.ResourceParser.NoteItemBgResources; import net.micode.notes.tool.ResourceParser.NoteItemBgResources;
/**
//创建便签列表项目选项 * NotesListItem 便
public class NotesListItem extends LinearLayout { * LinearLayout便
private ImageView mAlert;//闹钟图片 */
private TextView mTitle; //标题 public class NotesListItem extends LinearLayout {
private TextView mTime; //时间 private ImageView mAlert; // 闹钟图标
private TextView mCallName; // private TextView mTitle; // 标题
private NoteItemData mItemData; //标签数据 private TextView mTime; // 时间
private CheckBox mCheckBox; //打钩框 private TextView mCallName; // 电话联系人名称
private NoteItemData mItemData; // 便签数据
/*初始化基本信息*/ private CheckBox mCheckBox; // 复选框
public NotesListItem(Context context) {
super(context); //super()它的主要作用是调整调用父类构造函数的顺序 /**
inflate(context, R.layout.note_item, this);//Inflate可用于将一个xml中定义的布局控件找出来,这里的xml是r。layout * NotesListItem
//findViewById用于从contentView中查找指定ID的View转换出来的形式根据需要而定; * @param context
mAlert = (ImageView) findViewById(R.id.iv_alert_icon); */
mTitle = (TextView) findViewById(R.id.tv_title); public NotesListItem(Context context) {
mTime = (TextView) findViewById(R.id.tv_time); super(context);
mCallName = (TextView) findViewById(R.id.tv_name); inflate(context, R.layout.note_item, this);
mCheckBox = (CheckBox) findViewById(android.R.id.checkbox); mAlert = (ImageView) findViewById(R.id.iv_alert_icon);
} mTitle = (TextView) findViewById(R.id.tv_title);
///根据data的属性对各个控件的属性的控制主要是可见性Visibility内容setText格式setTextAppearance mTime = (TextView) findViewById(R.id.tv_time);
public void bind(Context context, NoteItemData data, boolean choiceMode, boolean checked) { mCallName = (TextView) findViewById(R.id.tv_name);
if (choiceMode && data.getType() == Notes.TYPE_NOTE) { mCheckBox = (CheckBox) findViewById(android.R.id.checkbox);
mCheckBox.setVisibility(View.VISIBLE); ///设置可见行为可见 }
mCheckBox.setChecked(checked); ///格子打钩
} else { /**
mCheckBox.setVisibility(View.GONE); * 便
} * @param context
* @param data 便
mItemData = data; * @param choiceMode
///设置控件属性一共三种情况由data的id和父id是否与保存到文件夹的id一致来决定 * @param checked
if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { */
mCallName.setVisibility(View.GONE); public void bind(Context context, NoteItemData data, boolean choiceMode, boolean checked) {
mAlert.setVisibility(View.VISIBLE); if (choiceMode && data.getType() == Notes.TYPE_NOTE) {
//设置该textview的style mCheckBox.setVisibility(View.VISIBLE);
mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); mCheckBox.setChecked(checked);
//settext为设置内容 } else {
mTitle.setText(context.getString(R.string.call_record_folder_name) mCheckBox.setVisibility(View.GONE);
+ context.getString(R.string.format_folder_files_count, data.getNotesCount())); }
mAlert.setImageResource(R.drawable.call_record);
} else if (data.getParentId() == Notes.ID_CALL_RECORD_FOLDER) { mItemData = data;
mCallName.setVisibility(View.VISIBLE);
mCallName.setText(data.getCallName()); if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) {
mTitle.setTextAppearance(context,R.style.TextAppearanceSecondaryItem); mCallName.setVisibility(View.GONE);
mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); mAlert.setVisibility(View.VISIBLE);
///关于闹钟的设置 mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem);
if (data.hasAlert()) { mTitle.setText(context.getString(R.string.call_record_folder_name)
mAlert.setImageResource(R.drawable.clock);//图片来源的设置 + context.getString(R.string.format_folder_files_count, data.getNotesCount()));
mAlert.setVisibility(View.VISIBLE); mAlert.setImageResource(R.drawable.call_record);
} else { } else if (data.getParentId() == Notes.ID_CALL_RECORD_FOLDER) {
mAlert.setVisibility(View.GONE); mCallName.setVisibility(View.VISIBLE);
} mCallName.setText(data.getCallName());
} else { mTitle.setTextAppearance(context, R.style.TextAppearanceSecondaryItem);
mCallName.setVisibility(View.GONE); mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet()));
mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); if (data.hasAlert()) {
///设置title格式 mAlert.setImageResource(R.drawable.clock);
if (data.getType() == Notes.TYPE_FOLDER) { mAlert.setVisibility(View.VISIBLE);
mTitle.setText(data.getSnippet() } else {
+ context.getString(R.string.format_folder_files_count, mAlert.setVisibility(View.GONE);
data.getNotesCount())); }
mAlert.setVisibility(View.GONE); } else {
} else { mCallName.setVisibility(View.GONE);
mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem);
if (data.hasAlert()) { if (data.getType() == Notes.TYPE_FOLDER) {
mAlert.setImageResource(R.drawable.clock);///设置图片来源 mTitle.setText(data.getSnippet()
mAlert.setVisibility(View.VISIBLE); + context.getString(R.string.format_folder_files_count,
} else { data.getNotesCount()));
mAlert.setVisibility(View.GONE); mAlert.setVisibility(View.GONE);
} } else {
} mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet()));
} if (data.hasAlert()) {
///设置内容获取相关时间从data里编辑的日期中获取 mAlert.setImageResource(R.drawable.clock);
mTime. setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); mAlert.setVisibility(View.VISIBLE);
} else {
setBackground(data); mAlert.setVisibility(View.GONE);
} }
//根据data的文件属性来设置背景 }
private void setBackground(NoteItemData data) { }
int id = data.getBgColorId(); mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate()));
//若是note型文件则4种情况对于4种不同情况的背景来源 setBackground(data);
if (data.getType() == Notes.TYPE_NOTE) { }
//单个数据并且只有一个子文件夹
if (data.isSingle() || data.isOneFollowingFolder()) { /**
setBackgroundResource(NoteItemBgResources.getNoteBgSingleRes(id)); * 便
} else if (data.isLast()) {//是最后一个数据 * @param data 便
setBackgroundResource(NoteItemBgResources.getNoteBgLastRes(id)); */
} else if (data.isFirst() || data.isMultiFollowingFolder()) {//是一个数据并有多个子文件夹 private void setBackground(NoteItemData data) {
setBackgroundResource(NoteItemBgResources.getNoteBgFirstRes(id)); int id = data.getBgColorId();
} else { if (data.getType() == Notes.TYPE_NOTE) {
setBackgroundResource(NoteItemBgResources.getNoteBgNormalRes(id)); if (data.isSingle() || data.isOneFollowingFolder()) {
} setBackgroundResource(NoteItemBgResources.getNoteBgSingleRes(id));
} else { } else if (data.isLast()) {
//若不是note直接调用文件夹的背景来源 setBackgroundResource(NoteItemBgResources.getNoteBgLastRes(id));
setBackgroundResource(NoteItemBgResources.getFolderBgRes()); } else if (data.isFirst() || data.isMultiFollowingFolder()) {
} setBackgroundResource(NoteItemBgResources.getNoteBgFirstRes(id));
} } else {
public NoteItemData getItemData() { setBackgroundResource(NoteItemBgResources.getNoteBgNormalRes(id));
return mItemData; }
} } else {
} setBackgroundResource(NoteItemBgResources.getFolderBgRes());
}
}
/**
* 便
* @return 便
*/
public NoteItemData getItemData() {
return mItemData;
}
}
Loading…
Cancel
Save