私はこれを約2週間は把握しようとしていますが、運は全くありません。 を使用して確認メッセージをonClickListener
に追加しようとしています.AlertDialogのsetPositiveButton
は、実行したいことを実行するものになりますが、getView
に値int position
を詰め込みます。クリックしたアイテムの位置を取得する代わりに、最後のアイテムの位置を取得します。私はonClick
(AlertDialog
の中のの中にToast
メッセージを入れて試してみましたが、それは正しい位置を返しますが、の中のToast
メッセージにしようとすると位置の値が変わります。私は立ち往生し、この仕事をする方法をしないでください。 私は値が変化しているかどうかを確認するためにbuilder.setPositiveButton
にButton.onClickListener
ようToast
メッセージを同じように設定して、はい、それは、変更を行います。Button.onClick内でAlertDialogを使用すると、ArrayAdapterのgetView(int position)の値が壊れます
は、ここに私のAdapter.Class
public class myOrderAdapter extends ArrayAdapter<myOrder> {
AlertDialog.Builder builder;
AlertDialog ad;
public class ViewHolder{
TextView tableNum;
TextView itemName;
TextView itemQuantity;
TextView custName;
Button btnStatus;
}
public myOrderAdapter(Context context, ArrayList<myOrder> orderList) {
super(context, 0,orderList);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final myOrder orderList = getItem(position);
ViewHolder viewHolder;
viewHolder = new ViewHolder();
if(convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_layout,parent,false);
viewHolder.tableNum = (TextView)convertView.findViewById(R.id.tableNum);
viewHolder.itemName = (TextView)convertView.findViewById(R.id.itemName);
viewHolder.custName = (TextView)convertView.findViewById(R.id.custName);
viewHolder.itemQuantity = (TextView)convertView.findViewById(R.id.itemQuantity);
viewHolder.btnStatus = (Button)convertView.findViewById(R.id.statusButton);
convertView.setTag(viewHolder);
}
else {
viewHolder = (ViewHolder)convertView.getTag();
}
viewHolder.tableNum.setText("Order for Table: "+orderList.getTable_id());
viewHolder.itemName.setText(orderList.getItem_name());
viewHolder.custName.setText("Customer Name: " + orderList.getCust_name());
viewHolder.itemQuantity.setText("QTY: " + orderList.getQuantity());
builder = new AlertDialog.Builder(Order.context);
builder.setTitle("Confirmation");
builder.setIcon(R.drawable.ic_confirm);
builder.setMessage("Is this Ready to Serve?");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(getContext(),orderList.getOrder_id()+ "+" + orderList.getItem_name() + "+" + position,Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
ad = builder.create();
viewHolder.btnStatus.setText("Ready");
viewHolder.btnStatus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getContext(),orderList.getOrder_id()+ "+" + orderList.getItem_name() + "+" + position,Toast.LENGTH_SHORT).show();
ad.show();
}
});
return convertView;
}
}
NOTEです。いくつかの助けと指導が必要です、ありがとう。
答えがあなたに役立つ場合は、それを忘れずにマークしてください –