实验内容:
1、设计一个新闻类用于存储新闻内容,如:
class News{
public String title;
public String content;
public String Source;
public String Time;
}
2、让程序默认加载ListActivity,创建长度为2的News对象数组,并为其硬编码赋值,将两个数组元素中的值分别加载到两个新闻列表项中
3、点击列表项,进入Detail,使用Intent将该列表项对应的News对象值传入,并显示在界面中
4、进入DetailActivity和退出DetailActivity时,分别记录时间,如果用户停留时间超过30秒,则向List传值,表示该新闻已读,ListActivity将标记为已读的文字显示为灰色
实验过程:
1、创建ListActivity和DetailActivity两个活动,分别对应activity_list和activity_detail布局。首先设计界面布局,activity_list为新闻列表布局,activity_detail为新闻详情布局,总体采用线性布局,布局如下:
2、在包下新建一个News的java类,用于存储新闻内容,代码如下。
public class News {
public String title;
public String content;
public String Source;
public String Time;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getSource() {
return Source;
}
public void setSource(String source) {
Source = source;
}
public String getTime() {
return Time;
}
public void setTime(String time) {
Time = time;
}
}
3、将ListActivity注册为主活动,并在代码中创建长度为2的News对象数组。并将新闻的信息数据加载到对应的新闻列表中。
4、在主活动中点击某个新闻,进入DetailActivity,中间用Intent传递新闻数据并显示在界面中。
5、在进入DetailActivity和退出DetailActivity时,分别记录时间,并求出差值,若超过30秒(此处我将时间改为了5秒),则将该新闻加入List,在主活动中对包含在List中的新闻列表进行灰色显示。
DetailActivity中添加代码:
新闻首页效果: 点击第一条新闻进入新闻详情页:
达到浏览时间后返回新闻列表,已读新闻标题字体变为灰色: