人人都可以是嘴巴选手..至于真正去做到的,有几个?
如若走出校门了你的脾性还比较恶劣,你以后社会上也就那样了..
今下午个班会,看到上去演讲的同学们个个都说得头头是道,都有道理,都想的应该把学习好行抓起,但是自己实际做到了哪些呢?我就只能呵呵了..
"我知道我学得差..""那么你可以回去少耍点游戏噻?""这个没办法,心头这样想的话肯定以后就慢慢改了噻"(这还不气人么,不过也不是咱能管的事是吧)
倒是其中一个女同学的想法讲到我心了,下来自己花了大量时间,却收获甚少,自然会让人气馁的,题方面,做又做不来,真要磨在这,好浪费时间..她也说过烂笔头比电脑上打字的重要性,这个我早也前面也说过,我不是甚至写完了字还能电视上也把字打出来么,现在讲课情况不行了,老师好多的快捷出来的代码,笔头怎么能记那么快?连电脑上打字关键点都有时候听老师入迷了而忘记记了,那就必须下来总结好关键点了,不然后面忘记了就麻烦了呢~
不过稍微感到欣慰的是,今晚咱小组还是开始讨论下当天讲课了,不像以往几乎只能听到游戏声的,虽然明天咱班例行修息一天(现在我们的课程安排是为了更好的利用机房,有俩个班以平时轮休两天周末上课的方式进行课程的)
话说今天好好个感叹啊,老师终于以带着我们实现各步骤的方式讲课了一天!
从来没说过我这是专业博文吧?我这不是写的日记?既然是日记,难道不是写个人生活感受么?咱绝对不去做那死板之人,这类人,我看着难受~
嗯听课思想的话先就这些吧,下面写下今天讲的内容和自定义适配器吧~
笔记内容:
关键是看别人是怎么做的notebook,源码,尽快熟悉人家的思路,今天界面开始。俩见面。显示列表和编辑界面。他是桌面绘制的。有什么不同。res和class文件。
class:大的项目是50个到100个。这个比较小,作为分析源码的程序是比较好的。方法很重要。找规律,从运行项目开始,主方法,看menutext.xml里主Activity。源码先看总体,memomain,展开,里面有所有属性和方法。继承或的类。可自写主。主子类。head文本notes(1),search搜索。同一把所有用的组件全初始化成属性在oncreat里,看资源文件的布局,因为是数字,在R里找。搜索找。在eclipse里克视图方式预览(Graphical Layout)。他的属性id=@id/意义?在values里有个ids.xml文件,type全是id,name全是会被其他引用的名字(把所有的id都写在这个资源文件里。避免重复名字,统一管理;false什么的其实不用管..)
整体是FrameLayout布局(帧),里用了LinearLayout,再内嵌俩布局RE和FR。第一个button属性visibility=invisible不可见,text是账户,是邮件的,真机还是不能用不管了。
第二个FrameLayout,里有俩view。是重叠的。点啥会切换他们谁隐藏和谁显示。他用飞是自定义LIstView,写的是代码,继承ListView。加了很多事件getCount里,8行。i的话至少8行。。【想打瞌睡就吼起来,并且打字】
getview绘制每一行,先判断序号长度,paramInt》=this.mCursor.getCount()
跟着老师做。。天呐。我泪奔了,。头一回啊~~
先把俩res里的图片放到mdpi和hdpi里。。
其一。拷贝drawlable,values(color,string,style),anim,colour
第一个button属性android:visibility="invisible"不显示
自定义listView ,写三构造函数
* @param context 上下文对象。Activity
* @param attrs 所有属性的集合
* @param defStyle 样式
自定义适配器 MemoMainListAdapter extends BaseAdapter
getCount里
// 如果数据不为空,那么返回的行数要大于或等于8.具体行数取决于数据的长度。
int i = 0;
if (mCursir != null) {
if (mCursir.length >= 8) {
i = mCursir.length;
} else {
i = 8;
}
}
return i;
在values建ids资源文件
<resources>
<item name="iphonememo_main_btn_account" type="id"></item>
<item ...>形式
</resources>
下来建作业:ipEditText,ipLineEditText,MemoEdit,还有个?
主界面里的ListView,可以自写个MemoListView,并在class类里继承于ListView
/**
* 自定义主界面的ListView 重写构造方法
*
* @author Zk
*
*/
public class MemoListView extends ListView {
public MemoListView(Context context) {
super(context);
}
public MemoListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* @param context 上下文对象。Activity
* @param attrs 所有属性的集合
* @param defStyle 样式
*/
public MemoListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
}
然后这个MemoListView 要注意加上具体路径:
<com.lovo.memo.ui.MemoListView 各种属性/>
然后ListView里每一行的布局xml文件:根目录也可写个自定义布局类来实现。如MemoGenericView继承相对布局,(虽然还没写具体多了哪些东西.)
/**
* 继承相对布局,自用的话可都用它,以满足更多实现
* @author Zk
*
*/
public class MemoGenericView extends RelativeLayout{
public MemoGenericView(Context context) {
super(context);
}
public MemoGenericView(Context context, AttributeSet attrs) {
super(context,attrs);
}
/**
*
* @param context
* @param attrs
* @param defStyle
*/
public MemoGenericView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
}
然后也可以自己定义个适配器:重写BaseAdapter未实现的方法,自写构造函数俩参数的;getCount()看需求写显示个数,重要的是getView()方法,暂不熟,需下来多看下.
/**
* 自定义适配器
*
* @author zk
*
*/
public class MemoMainListAdapter extends BaseAdapter {
private String[] mCursir;
private Activity activity;
public MemoMainListAdapter(String[] mCursir, Activity activity) {
super();
this.mCursir = mCursir;
this.activity = activity;
}
@Override
public int getCount() {
// 如果数据不为空,那么返回的行数要大于或等于8.具体行数取决于数据的长度。
int i = 0;
if (mCursir != null) {
if (mCursir.length >= 8) {
i = mCursir.length;
} else {
i = 8;
}
}
return i;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
// 返回position
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
//创建每行显示的View组件
convertView = newView();
//如果当前行号已经超过数组的唱的,则不绘制当前行中组件的内容
if (position >= mCursir.length) {// 超出设成空白
((ViewGroup)convertView).getChildAt(1).setVisibility(View.INVISIBLE);// 4隐藏
} else {
buildView(position, convertView);
}
return convertView;
}
/**
*
* @param position 字义是方位
* @param converView View
*/
public void buildView(int position, View converView) {
TextView contentTextView = (TextView) ((ViewGroup) converView).getChildAt(0);
TextView dateTextView = (TextView) ((ViewGroup) converView).getChildAt(2);
String content = mCursir[position];// ?
contentTextView.setText(content);
// 获取当前系统时间
Date date = new Date();
String dataStr=new SimpleDateFormat("HH:mm").format(date);
dateTextView.setText(dataStr);// ?
}
public View newView() {
View view = activity.getLayoutInflater().inflate(
R.layout.iphonememo_main_listitem, null);
return view;
}
}
最后是主Avtivity里,成员MemoListView和MemoMainListAdapter和数组将显示的元素,findViewById找出资源文件;new一个MemoMainListAdapter并传参资源数组和当前Activity,最后setAdapter而显示出来。
/**
* 主入口Activity
*
* @author Zk
*
*/
public class MemoMain extends IphoneNoTitleActivity {
private MemoListView mListView;
private MemoMainListAdapter mListAdapter;
private String[] mCursor = new String[] { "this1", "test2", "test3",
"this4", "test5", "test6", "this7", "test8", "test9", "this10",
"test11", "test12", "this13", "test14", "test15" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.iphonememo_main);
mListView = (MemoListView) findViewById(R.id.iphonememo_main_memolistview);
mListAdapter = new MemoMainListAdapter(mCursor, this);
mListView.setAdapter(mListAdapter);
}
额晕模拟器也会抽么..显示不出效果了啊咧咧?~~
某音乐部成员,外国孩子们除了念书外的课外活动还是比较丰富的..那咱的高考造就的呢?既然身在此就该做此了呗..那些只能感叹罢了