@Override public View getView(int position, View convertView, ViewGroup parent) { View view = null; if (null == convertView) { view = mLayoutInflater.inflate(R.layout.camera_list_item, null); } else { view = convertView; } ImageView thumbView = (ImageView) view.findViewById(R.id.thumb); TextView cameraName = (TextView) view.findViewById(R.id.cameraName); ImageView cameraStateView = (ImageView) view.findViewById(R.id.cameraState); TextView cameraStateTxtView = (TextView) view.findViewById(R.id.cameraStateTxt); ImageView editView = (ImageView) view.findViewById(R.id.edit); ImageView deleteView = (ImageView) view.findViewById(R.id.delete); final CameraInfo info = mCameraInfos.get(position); thumbView.setImageBitmap(info.getCameraThumb()); cameraName.setText(info.getCameraName()); cameraStateView.setImageResource(getStateDrawable(info)); cameraStateTxtView.setText(getStateTxtDrawable(info)); editView.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { if (info.getIsOnline()) { Intent intent = new Intent(); intent.setClass(getApplicationContext(), CameraInfoSettingActivity.class); intent.putExtra(Constants.INTENT_CID, info.getCid()); startActivity(intent); } else { Toast.makeText(CameraListActivity.this, R.string.camera_offline, Toast.LENGTH_LONG) .show(); } } }); deleteView.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { new AlertDialog.Builder(CameraListActivity.this) .setTitle(R.string.delete_camera_dlg_title) .setPositiveButton( R.string.confirm, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { removeStreamer(info.getCid()); mCameraInfoManager.delete(info); mMyViewerHelper.removeCameraInfo(info); mCameraListAdapter.notifyDataSetChanged(); } }) .setNegativeButton( R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .create() .show(); } }); return view; }