0
一個複選框,這是我寫的檢索位置coordiantes代碼:無法檢索位置座標上點擊黑莓
final EditField ed3=new EditField("Lat is ","");
add(ed3);
final EditField ed4=new EditField("Lon is ","");
add(ed4);
CheckboxField cbf=new CheckboxField("test it",false);
add(cbf);
cbf.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
// TODO Auto-generated method stub
try {
BlackBerryCriteria bc=new BlackBerryCriteria(GPSInfo.GPS_MODE_CELLSITE);
LocationProvider lp3 = LocationProvider.getInstance(bc);
Location loc = null;
loc = lp3.getLocation(-1);
if(loc != null)
{
QualifiedCoordinates qc=loc.getQualifiedCoordinates();
double lat=qc.getLatitude();
double lon=qc.getLongitude();
ed3.setText(lat+"");
ed4.setText(""+lon);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
,但我無法獲取的座標。兩個編輯字段都留空。這裏有什麼問題?請幫助我。謝謝
好的,然後告訴我好的做法。服務提供商沒有問題。因爲我已經通過檢索位置進行了測試,而沒有單擊複選框(每30秒自動更新一次編輯字段) – Pramod
任何阻塞或長時間運行的進程都需要在單獨的線程上運行。 RIM在其網頁上提供的編碼風格指南中介紹了這一點,以幫助開發人員開始使用BlackBerry平臺。 – Richard
事實上,getLocation應該在事件線程中調用時引發異常。你應該在一個單獨的線程上運行它,比如@Richard Mentioned,並且讓該線程更新該字段。 – Tamar