📄 updata.java
字号:
import java.util.Vector;
import javax.microedition.lcdui.*;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
//下载广告
public class Updata implements CommandListener,Reloadable{
private DataSave dataSave;
private Display display; //为退出该界面而设置
private Displayable displayable; //同上
private Jianhuaban m_mp;
// private Vector vector = new Vector();
private RecordStore rs=null;
private Container container;
private Form f;
private MyCommand myCommand;
public Updata(Jianhuaban mp,DataSave dataSave) { //参数模拟news类构造函数
// this();
m_mp=mp;
this.dataSave=dataSave;
}
public Updata() {
}
//如果该方法没有注释掉,在Jianhuaban的70,71行和Instead的36,39就会报错
//原来没有注释掉方法中的this();出现上边的错误,看来还需要复习复习java基础了
//Jianhuaban m_mp,HttpDataAgent m_hda,Displayable displayable,Container container
// public Updata(Jianhuaban mp,Displayable displayable,Container container){
//this();
// this.container=container;
// m_mp=mp;
// this.displayable=displayable;
// this.display=Display.getDisplay(m_mp);
// }
public Updata(Jianhuaban m_mp,HttpDataAgent m_hda,Displayable displayable,Container container){
//this();
this.container=container;
this.m_mp=m_mp;
this.displayable=displayable;
this.display=Display.getDisplay(m_mp);
}
public Updata(RecordStore rs){
this.rs=rs;
}
public void DownRec(String str){
String strParam="";
//重写也不行,为什么只有读取ad的id,后边的无法读取,下边的行注释掉就会发生异常
//这个语句下载数据并启动进度条 晋注释
m_mp.m_hda.DownData("newweb/wap/"+str+".asp",strParam,get_fNewsContent(),this,container);
}
//启动下载数据
public boolean Reload(){
loadAD();
return true;
}
public void initialize(String str){
DownRec(str);
}
public boolean loadAD(){
int i,j,m;
StringBuffer strTmp=new StringBuffer();
Vector v =new Vector();
Vector adIDv=new Vector();
//j= m_mp.m_hda.m_iRecCount<Num.adNum?m_mp.m_hda.m_iRecCount:Num.adNum;//取两者较小者, //为什么要取两者较小的一个
//j再和rms包中读取的最后id进行比较,
//把类似于adid的反序列
SortComparator sortCom = new SortComparator();
int a=0;
// try{
// RecordStore rs=RecordStore.openRecordStore(container.getAD(),true,RecordStore.AUTHMODE_PRIVATE,true);
// if(rs.getNumRecords()>0){
// RecordEnumeration re=rs.enumerateRecords(null,sortCom,true);
// while(re.hasNextElement()){
// container=Container.deserializeAD(re.nextRecord());
// a=container.AdID;
// }
// }
// rs.closeRecordStore();
// }catch(Exception e){
// e.printStackTrace();
// }
// a为rms包内的id号码
int y=m_mp.m_hda.m_iRecCount-Num.adNum>m_mp.m_hda.m_iRecCount-a?m_mp.m_hda.m_iRecCount-Num.adNum:m_mp.m_hda.m_iRecCount-a;//取两者比较大的那个
//container=new Container();
int new_id=0;
String str="";
for(i=0; i<=m_mp.m_hda.m_iRecCount; i++){
for(j=y;j<=m_mp.m_hda.m_iRecCount;j++){
if( !m_mp.m_hda.GetNextFld(null,strTmp)){
return false;
}
new_id=Integer.parseInt(strTmp.toString());
adIDv.addElement(new Integer(new_id));
container.setAdID(new_id);
//* ctnt
if( !m_mp.m_hda.GetNextFld(null,strTmp)){
return false;
}
str = strTmp.toString();
container.setAdContent( str) ; //返回广告的内容,container
v.addElement(container.getAdContent());
}
}
//container.o_AdID=container.AdID;
// Jianhuaban jianhuaban=new Jianhuaban(container);
save("ad",Num.adNum,adIDv,v,m_mp.m_hda.m_iRecCount,container,dataSave);
v.removeAllElements();
adIDv.removeAllElements();
//在这里要记录一下这次更新的id
return true;
}
/*
*para fileName 是需要各种保存的各种文件
*para num 是吕那边指定的参数
*para i 是从上边方法
*para id 是load方法中的m_mp.m_hda.m_iRecCount
*para v1 是保存id的
*para v2是保存内容的
* //目前我们假设自己定义的id
*
*/
// private void save(String fileName,int num,Container c,int id){
public void save(String fileName,int num,Vector v1,Vector v2,int id,Container container,DataSave dataSave){
dataSave.openTheStore(fileName);
container.setVectorV1(v1);
container.setVectorV1(v2);
int j=dataSave.getCurrentID();
StringBuffer sb=new StringBuffer();
if(dataSave.getNum()==0||id<=num){
for(int i=0;i<id;i++){
//for(int i=1;i<id;i++){
dataSave.addTheStore(fileName,container);
// ds.aaaa(fileName,c,str); //测试c用的
}
}
if(dataSave.getNum()!=0&&id>num){
for(int i=id-num+j+1;i<=id;i++){
dataSave.addTheStore(fileName,container);
}
for(int i=id-num+1;i<id-num+j;i++){
dataSave.setTheData(fileName,container);
}
}
if(dataSave.getNum()!=0&&id >num){
for(int i=id-num+1;i<=id;i++){
dataSave.setTheData(fileName,container);
}
}
}
////////////////////////////////////////////12-7
/*
public void save(String fileName,int num,Vector v1,Vector v2,int id,Container container,DataSave dataSave){
// DataSave ds=new DataSave(fileName);
dataSave.openTheStore(fileName);
container.setVectorV1(v1);
container.setVectorV1(v2);
int j=dataSave.getCurrentID();
StringBuffer sb=new StringBuffer();
if(ds.getNum()==0||id<=num){
for(int i=0;i<id;i++){
//for(int i=1;i<id;i++){
ds.addTheStore(fileName,container);
// ds.aaaa(fileName,c,str); //测试c用的
}
}
if(ds.getNum()!=0&&id>num){
for(int i=id-num+j+1;i<=id;i++){
ds.addTheStore(fileName,container);
}
for(int i=id-num+1;i<id-num+j;i++){
ds.setTheData(fileName,container);
}
}
if(ds.getNum()!=0&&id >num){
for(int i=id-num+1;i<=id;i++){
ds.setTheData(fileName,container);
}
}
}
*/
//////////////////////////////////////////////////////////////
/*
public void save (String fileName, int num,int id,Container container){
DataSave ds=new DataSave(fileName);
int j=ds.getCurrentID();
StringBuffer sb=new StringBuffer();
if(ds.getNum()==0||id<=num){
for(int i=0;i<id;i++){
//for(int i=1;i<id;i++){
ds.addTheStore(fileName,container);
// ds.aaaa(fileName,c,str); //测试c用的
}
}
if(ds.getNum()!=0&&id>num){
for(int i=id-num+j+1;i<=id;i++){
ds.addTheStore(fileName,container);
}
for(int i=id-num+1;i<id-num+j;i++){
ds.setTheData(fileName,container);
}
}
if(ds.getNum()!=0&&id >num){
for(int i=id-num+1;i<=id;i++){
ds.setTheData(fileName,container);
}
}
}
*/
public Form get_fNewsContent() {
if(f==null){
myCommand=new MyCommand();
f=new Form("百医信息站->手机平台会议系统");
f.addCommand(myCommand.getBack());
f.setCommandListener(this);
}
return f;
}
public void commandAction(Command c,Displayable d){
if(c==myCommand.getBack()){
display.getDisplay(m_mp).setCurrent(displayable);//添加需要返回的界面,面前的问题是如何displayable传递到该类中
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -