📄 titlelist.java
字号:
/*
* TitleList.java
*
* Created on 2006年12月20日, 上午2:25
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package cn.edu.uestc.pandarss;
import java.util.*;
import javax.microedition.lcdui.*;
/**
*
* @author pandaxiaoxi
*/
/*--------------------------------------------------
* TitleList.java
*
* 保存RSS Feed源中的所有文章的标题和摘要
*
* 本类中用到了两个项目来保存文章标题和摘要
*-------------------------------------------------*/
public class TitleList extends List implements CommandListener {
private Command cmBack;
private RSSReader midlet;
private Vector vecTitle, vecDescription;
public TitleList(RSSReader midlet) {
super("文章标题", List.IMPLICIT);
// 保存主类RSSReader对象的引用,以便回调它提供的方法
this.midlet = midlet;
cmBack = new Command("Back", Command.BACK, 1);
// 添加命令和监听器到Form中
addCommand(cmBack);
setCommandListener(this);
vecTitle = new Vector();
vecDescription = new Vector();
}
/*--------------------------------------------------
* 清空vecTitle和vecDescription两个向量,
* 同时,也删除当前List中已显示的内容
*-------------------------------------------------*/
protected void clearTitle() {
vecTitle.removeAllElements() ;
vecDescription.removeAllElements();
while (this.size() > 0)
this.delete(0);
}
/*--------------------------------------------------
* 取得参数指定的RSS Feed源的所有文章标题和摘要
* 内部创建新线程调用Parser代码完成获取文章标题和摘要的任务.
*-------------------------------------------------*/
protected void getTitles(String source) {
vecTitle.removeAllElements();
vecDescription.removeAllElements();
while (this.size() > 0) {
this.delete(0);
}
/* 创建并启动新的RSSParser线程*/
RSSParser tmp = new RSSParser(midlet, source, midlet.fmInfo, this);
tmp.start();
}
/*--------------------------------------------------
* 该方法由RSSParser类调用,添加新获取的文章标题和摘要
*-------------------------------------------------*/
public void newTitle(String title, String description) {
vecTitle.addElement(title);
vecDescription.addElement(description);
this.append(title, null);
}
/*--------------------------------------------------
* 事件处理
*-------------------------------------------------*/
public void commandAction(Command c, Displayable s) {
// 按下'select'键
if (c == List.SELECT_COMMAND) {
//设置Form的标题为选中的文章标题
String item = (String) vecTitle.elementAt(getSelectedIndex());
midlet.fmArticle.setArticleTitle(item);
//设置Form内容为选中的文章摘要
item = (String) vecDescription.elementAt(getSelectedIndex());
midlet.fmArticle.setArticle(item);
//显示fmArticle
midlet.display.setCurrent(midlet.fmArticle);
} else {
// 按下除了'select'以外的任意键, 都回到主RSS Feed源列表界面
midlet.display.setCurrent(midlet.lsRSSSources);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -