2014-02-14 15 views
0

我需要你的幫助,當沒有座標顯示在數組列表中時,如何處理Get Coordinate按鈕中的錯誤?如何在沒有座標顯示在arraylist中時處理錯誤?

這是我的代碼:

AlertDialog.Builder mAlert = new AlertDialog.Builder(Hotel.this); 

view = getLayoutInflater().inflate(R.layout.alert_background, null); 
ImageView Content_img = (ImageView)view.findViewById(R.id.imageView1); 
TextView Content_txt1 = (TextView)view.findViewById(R.id.textView1); 

Content_img.setImageResource(item_detail.get(position).getImageNumber()); 
Content_txt1.setText(item_detail.get(position).getName()); 

mAlert.setTitle(item_detail.get(position).getName()). 
setView(view). 
setPositiveButton("Get Coordinate", new DialogInterface.OnClickListener() 
{ 

    @Override 
    public void onClick(DialogInterface dialog, int which) 
    { 
      dialog.dismiss(); 
      Intent intent = new Intent(Hotel.this, MapsActivity.class); 
      intent.putExtra("lon", item_detail.get(position).lon); 
      intent.putExtra("lat", item_detail.get(position).lat); 
      Hotel.this.startActivity(intent); 
    } 

}).create().show(); 

這是我的ArrayList中,該陣列中的一個具有座標和另一個不:

private ArrayList<ItemDetail> GetSearchResult() 
{ 
    ArrayList<ItemDetail> result = new ArrayList<ItemDetail>(); 

    ItemDetail item_detail = new ItemDetail(); 
    item_detail.setName("Taman Sari"); 
    item_detail.setImageNumber(images[0]); 
    item_detail.ALoc(-6.917222222, 106.9758333); 
    result.add(item_detail); 

    item_detail = new ItemDetail(); 
    item_detail.setName("Taman Tirta"); 
    item_detail.setImageNumber(images[1]); 
    result.add(item_detail); 


    return result; 
} 
+0

這應該是你的用例,你將如何處理異常情況的一部分。 建議:在'ItemDetail'中,你應該爲Aloc()的參數提供默認值。所以,如果沒有提供輸入,那麼將使用默認值。 – guptakvgaurav

+0

謝謝大家,問題解決了 – Ryan

回答

1

你可以試着得到一個lonlat在首先檢查它們是否爲null。如果它們是null,則可以顯示Toast錯誤。

@Override 
    public void onClick(DialogInterface dialog, int which) { 
     dialog.dismiss(); 
     Intent intent = new Intent(Hotel.this, MapsActivity.class); 
     Object lan = item_detail.get(position).lon; 
     Object lat = item_detail.get(position).lat; 
     if (lan == null || lat == null){ 
      //show toast 
     } else { 
      intent.putExtra("lon", lon); 
      intent.putExtra("lat", lat); 
      Hotel.this.startActivity(intent); 
     } 
    } 
+0

謝謝nikis,問題解決了。感謝提前。 – Ryan

0

你基本上有兩種可能性:確保每一個ItemDetail已設置的參數,這樣就可以通過顯示每個ItemDetail依靠這個或不顯示任何東西,錯誤信息或可能的東西做錯誤處理。

0

解決方案1: 設置參數的默認值,這樣您無需在從對象中獲取值時檢查null。如果未提供新值,則將使用舊值。

class ItemDetail{ 

type param1 = value1; // some default value say 21 
type param2 = value2; // some default value say 43 
public void ALoc(type param1, type param2){ 

} 

} 

解決方案2:

onclick(onclick-param){ 

    type value = item_detail.get(position).lon; 
    if(value == null){ 
    // no value supplied. 
    }else{ 
    // value supplied 
    } 
} 
+0

謝謝大家,問題解決了 – Ryan

相關問題