我需要你的帮助,当数组列表中没有要显示的坐标时,如何处理Get Coordinate按钮中的错误?
这是我的代码:
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 :(得分:1)
您可以先尝试获取lon
和lat
,然后检查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);
}
}
答案 1 :(得分:0)
您基本上有两种可能性:确保每个ItemDetail
都设置了参数,这样您就可以通过显示每个ItemDetail
来依赖它,或者通过不显示任何内容和错误消息或可能的内容来执行错误处理
答案 2 :(得分: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
}
}