1
Fragment
클래스에는 배열 어댑터로 구현 된 ListView
클래스가 있습니다. ListView
을 클릭하면 확인 대화 상자를 표시하고 싶습니다. 다음은 어레이 어댑터에 대한 나의 소스 코드이다.배열 어댑터에 경고 대화 상자를 만들 수 없습니다.
Context _context;
int layoutResourceId;
List<OrderListInfo> _listOrderListInfoAdapter = new ArrayList<OrderListInfo>();
private String ButtonFlag = "";
Activity _activity;
public OrderDetailListAdatper(Context context, int Resource,
List<OrderListInfo> listorderlistInfo) {
super(context, Resource, listorderlistInfo);
_context = context;
_listOrderListInfoAdapter = listorderlistInfo;
layoutResourceId = Resource;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
LayoutInflater inflater = (LayoutInflater) _context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (row == null) {
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
TextView txtProductCode = (TextView) row
.findViewById(R.id.txtProductCode);
Button btnDelete = (Button) row.findViewById(R.id.btnRemove);
holder.txtProductCode = txtProductCode;
row.setTag(holder);
} else {holder = (ViewHolder) row.getTag(); }
OrderListInfo _orderListInfoAdapter = _listOrderListInfoAdapter
.get(position);
holder.txtProductCode.setText(_orderListInfoAdapter.getProductCode()
.toString()
);
holder.btnDelete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder alert = new AlertDialog.Builder(view.getContext());
alert.setMessage("Do you want to delete?");
alert.setNegativeButton("CANCEL",
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int whichButton) {
dialog.cancel();
}
});
alert.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int whichButton) {
OrderDetailListAdatper.this._listOrderListInfoAdapter
.remove(position); OrderDetailListAdatper.thisnotifyDataSetChanged();
}
});
AlertDialog alertDialog = alert.create();
alertDialog.show();
}
});
}
return row;
}
는 호출이 코드
(AlertDialog alertDialog = alert.create();) ,
후 나는 창을 추가 할 수 없습니다
android.view.WindowManager$BadTokenException:
로 오류 - 토큰이 널 (null)은 응용 프로그램이 아닙니다. 나는 당신의 getView에서이 문제
생성자의 arrayadapter에 컨텍스트를 전달 했습니까? –
대신에'View.getContext' .. 대신에'getContext'를 사용하시오. 또는 당신이 지정한 ..와 같이 _context를 사용하고 컨텍스트가 액티비티를 지정했는지 확인하십시오. – Elltz
@Pramod Yadav, @ Elltz 이미 생성자를 게시하고 있습니다. View 대신 getContext를 변경하려고합니다. .getContext하지만 여전히 같은 오류가 발생합니다. – dragullar