?? 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 + -