alertDialogボタンからYESボタンを押した後、リストビューの行を削除するにはどうすればよいですか?!
私のコードCancel
には、押した場合に必要な行のボタンがあり、2つのことを実行する必要があります。
- alertDialogを表示:関数を呼び出すことでそれを行いました
ShowDialogCancel()
、 - を押した後:このalertDialogでYES==>行を削除する必要があります!!
多くの方法で試しましたが、alertDialogのYESボタンを押す前に行が削除されます
なにか提案を
モネラ..。
私のアダプタークラス:
public class MyCasesListAdapter extends BaseAdapter {
private MyPage myPage;
private List<MyCaseClass> listOfCases;
private Activity parentActivity;
// TODO test
MyCaseClass entry;
// TODO delete it not imp.
public MyCasesListAdapter() {
super();
}
public MyCasesListAdapter(MyPage mypage, List<MyCaseClass> listOfCaseParameter, Activity parentActivity) {
this.myPage = mypage;
this.listOfCases = listOfCaseParameter;
this.parentActivity = parentActivity;
}
...
public View getView(int position, View convertView, ViewGroup viewGroup) {
entry = listOfCases.get(position);
//this.getitem(position)
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) myPage
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.mypage_row, null);
}
// this is row items..
// Set the onClick Listener on this button
Button ConfExpandRegion = (Button) convertView.findViewById(R.id.expand);
Button Cancelb = (Button) convertView.findViewById(R.id.cancelCase);
TextView tvCase = (TextView) convertView.findViewById(R.id.mypage_name);
// To be a clickable button
ConfExpandRegion.setFocusableInTouchMode(false);
ConfExpandRegion.setFocusable(false);
ConfExpandRegion.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
myPage.ShowingDialogExpand();
}
});
// To be a clickable button
Cancelb.setFocusableInTouchMode(false);
Cancelb.setFocusable(false);
Cancelb.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
entry = (MyCaseClass) v.getTag();
int caseid= entry.getID();
myPage.ShowingDialogCancel(caseid);
Toast.makeText(myPage, "inside calling", 0).show();
//MyCaseClass entry = (MyCaseClass) v.getTag();
//listOfCases.remove(entry);
// listPhonebook.remove(view.getId());
notifyDataSetChanged();
}
});
// Set the entry, so that you can capture which item was clicked and
// then remove it
// As an alternative, you can use the id/position of the item to capture
// the item
// that was clicked.
ConfExpandRegion.setTag(entry);
Cancelb.setTag(entry);
// btnRemove.setId(position);
return convertView;
}
public void onClick(View view) {
MyCaseClass entry = (MyCaseClass) view.getTag();
listOfCases.remove(entry);
// listPhonebook.remove(view.getId());
notifyDataSetChanged();
}
}
私のページクラスから:
public void ShowingDialogCancel(){
final AlertDialog alertDialog2 = new AlertDialog.Builder(this).create();
alertDialog2.setTitle("Conformation?");
alertDialog2.setMessage("Are you sure you want to cancel x cases?");
alertDialog2.setButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
CancelMsg = "Case_ID cancel";
if (!b) {
try {
// Should write server number here + the chatting must be pushed above
sendSMS("0000", CancelMsg);
Toast.makeText(MyPage.this, "Cancelation request sent", Toast.LENGTH_LONG)
.show();
} catch (Exception e) {
// TODO Auto-generated catch block
Toast.makeText(MyPage.this, e.getMessage(),
Toast.LENGTH_LONG).show();
}
}
}
});
alertDialog2.setButton2("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// here you can add functions
// Do nothing
Toast.makeText(MyPage.this, "inside No", 0)
.show();
}
});
alertDialog2.setIcon(android.R.drawable.ic_dialog_alert);
alertDialog2.show();
}
}