[英]AlertDialog & SnackBar alerts
Would it be possible to close an AlertDialog without having to click on/set a PositiveButton/NegativeButton? 是否可以关闭AlertDialog而不需要单击/设置PositiveButton / NegativeButton?
Delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
db.DeleteRecord(_id);
db.close();
Snackbar.make(textEntryView, "Removed", Snackbar.LENGTH_LONG).setDuration(700).show();
}
});
Using a custom button added to my layout I want to click on it and have it close the AlertDialog aswell. 使用添加到我的布局中的自定义按钮,我想单击它并使它也关闭AlertDialog。
I have a total of 3 buttons currently 我目前共有3个按钮
The other two I added in my layout so I could use Snackbar alert and I know I can do this by using setNeutralButton but it won't show a SnackBar alert. 我在布局中添加了另外两个,因此我可以使用Snackbar警报,并且我知道可以通过使用setNeutralButton来做到这一点,但不会显示SnackBar警报。
I this code will work- 我这段代码可以工作-
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
final FrameLayout customView= (FrameLayout) View.inflate(this, R.layout.custome_view, null);
final Button button = (Button) customView.findViewById(R.id.my_button);
button.setText(mTvEmail.getText().toString());
builder.setView(customView);
final AlertDialog alertDialog = builder.create();
alertDialog.show();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
To make it easier this is the whole thing 为了更容易,这就是全部
private void CreatePopup(Long id) {
final LayoutInflater Manual = LayoutInflater.from(this);
final View textEntryView = Manual.inflate(update, null);
final EditText infoData = (EditText) textEntryView.findViewById(R.id.InfoData);
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
final TextView TextSet = (TextView) textEntryView.findViewById(R.id.product);
final Button Accept = (Button) textEntryView.findViewById(R.id.button);
final Button Delete = (Button) textEntryView.findViewById(R.id.delete);
final SQLite db = new SQLite(this);
final Long _id = id;
final SQLiteDatabase X = db.getReadableDatabase();
final Cursor c;
c = X.rawQuery("SELECT Product FROM Inventory WHERE _id =" + _id, null);
c.moveToFirst();
final String Data = c.getString(c.getColumnIndexOrThrow("Product"));
TextSet.setText(Data);
c.close();
Accept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (infoData.length() != 0) {
final Editable Data = infoData.getText();
db.UpdateRecord(Data, _id);
db.close();
Snackbar.make(textEntryView, "Updated", Snackbar.LENGTH_LONG).setDuration(700).show();
}
else {
Toast toast = Toast.makeText(getApplicationContext(),
"Input Quantity!", Toast.LENGTH_SHORT);
toast.show();
}
}});
Delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
db.DeleteRecord(_id);
db.close();
Snackbar.make(textEntryView, "Removed", Snackbar.LENGTH_LONG).setDuration(700).show();
}
});
alert.setTitle("Update Quantity").setView(textEntryView);
alert.setPositiveButton("Done", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
CreateListView();
}
});
alert.show();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.