我已经onLongClickListener在 Android 中实现了Dialog使用计时器自动减少数字的按钮。这是代码
myIncreaseTimer = new Timer();
final Runnable runnable_decrease = new Runnable() {
public void run() {
int txt = Integer.parseInt(length.getText().toString());
txt -= 1;
length.setText(String.valueOf(txt));
if (txt == 0) {
myIncreaseTimer.cancel();
myIncreaseTimer.purge();
myIncreaseTimer = new Timer();
}
}
};
btnMinus.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
myIncreaseTimer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(runnable_decrease);
}
}, 0, 300);
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
当我在活动中而不是对话框中时,我可以通过onTouchEvent用户触摸屏幕来停止减少
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() …Run Code Online (Sandbox Code Playgroud) 我想在几个按钮的Onclick事件中检查一些Spinner控件(如果用户离开Activity),如果一个或多个未填写,则向用户显示一条带有2个选项的警告消息:
@Override
public void onClick(View v) {
int i1 = spinner1.getSelectedItemPosition();
(..)
if ((i1 == 0) | (i2 == 0) | (i3 == 0) | (i4 == 0) | (i5 == 0)) {
AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
alertbox.setMessage("Answers missing, what do you want to do?");
final CharSequence[] items = {
"Oops.. let me fix that…",
"I want to leave the app now" };
alertbox.setTitle("Pick an item");
alertbox.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if (item …Run Code Online (Sandbox Code Playgroud) 我想在使用longClick时添加带有2个按钮的对话框编辑和删除(仅实际删除实现)(标准点击打开项目详细信息)
所以我试图按照这个链接上的指南
我补充说
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.layout.edit_dialog, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();
switch (item.getItemId()) {
case R.id.remove_item:
final String[] listItem = getItemId();
String idItemSel = listItem[info.position];
delItem(idItemSel);
adapter.notifyDataSetChanged();
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
(其中适配器是我的列表适配器)
我以这种方式配置了监听器
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) …Run Code Online (Sandbox Code Playgroud) 我已将我的活动放在childview中,现在我无法显示来自我的活动和适配器的对话框.在我的logCat中我得到了
04-11 12:39:59.823: E/AndroidRuntime(12831): FATAL EXCEPTION: main
04-11 12:39:59.823: E/AndroidRuntime(12831): android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@41971f18 is not valid; is your activity running?
04-11 12:39:59.823: E/AndroidRuntime(12831): at android.view.ViewRootImpl.setView(ViewRootImpl.java:513)
04-11 12:39:59.823: E/AndroidRuntime(12831): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:301)
04-11 12:39:59.823: E/AndroidRuntime(12831): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
04-11 12:39:59.823: E/AndroidRuntime(12831): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
04-11 12:39:59.823: E/AndroidRuntime(12831): at android.view.Window$LocalWindowManager.addView(Window.java:537)
04-11 12:39:59.823: E/AndroidRuntime(12831): at android.app.Dialog.show(Dialog.java:278)
04-11 12:39:59.823: E/AndroidRuntime(12831): at android.app.AlertDialog$Builder.show(AlertDialog.java:932)
04-11 12:39:59.823: E/AndroidRuntime(12831): at com.myapp.functions.DownloadsDetailsAdapter$1$2.run(DownloadsDetailsAdapter.java:148)
04-11 12:39:59.823: E/AndroidRuntime(12831): at android.app.Activity.runOnUiThread(Activity.java:4170)
04-11 12:39:59.823: E/AndroidRuntime(12831): at com.myapp.functions.DownloadsDetailsAdapter$1.onClick(DownloadsDetailsAdapter.java:139)
04-11 12:39:59.823: E/AndroidRuntime(12831): at android.view.View.performClick(View.java:3511) …Run Code Online (Sandbox Code Playgroud) 我有一个显示为对话框的活动:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setTheme(android.R.style.Theme_Dialog);
setFinishOnTouchOutside(true);
}
Run Code Online (Sandbox Code Playgroud)
当用户通过触摸 Activity-Dialog 窗口之外来关闭 Activity-Dialog 时,Activity 完成。
如何在此事件上设置侦听器?
这很重要,因为我希望能够打电话
setResult(intResultCode, intent);
Run Code Online (Sandbox Code Playgroud)
就在完成之前。
在 onPause() 中调用 setResult() 可能已经太晚了。
java android android-dialog android-activity onactivityresult
碎片我是新手.我想在Dialog中显示图像.任何人都可以提供如何显示支持所有设备的DialogFragment的代码片段吗?
我想在android对话框中设置图像视图.如果我从图库中选择一个图像,则会在所选图像的对话框中显示.我将尝试从厨房获取图像并传递到警报对话框的路径.
我创建了一个AlertDialog并且想要更改AlertDialog的标题颜色但是在每次尝试中都失败了.它的工作原理很细上Android 5.0与标题颜色和上面为黑色,但是当它运行下面的是Android 5.0,它的标题颜色获取的变成白色,我用了风格和许多其他来源来自互联网但失败了,我的代码如下,
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(msg)
.setCancelable(true)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
final AppCompatDialog dialog = builder.create();
dialog.setTitle("VALIDATION_TITLE error");
dialog.setCancelable(false);
dialog.show();
Run Code Online (Sandbox Code Playgroud)
我的问题通过以下方式得到解决,
dialog.setTitle( Html.fromHtml("<font color='#FF7F27'>Set IP Address</font>"))
Run Code Online (Sandbox Code Playgroud)
但我不想用这个,任何帮助都会非常感激.您可以通过此聊天链接查看我的对话框的屏幕截图
我的代码是用 Java 编写的,我正在将它重构为 Kotlin。我有这个:
Dialog dialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar) {
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
dismiss();
dialog = null;
setLockedDialog(false);
return false;
}
};
Run Code Online (Sandbox Code Playgroud)
我无法使用 Kotlin 编写它。这是我的方法:
dialog = Dialog(this, android.R.style.Theme_Translucent_NoTitleBar) {
override fun dispatchTouchEvent(ev: MotionEvent) {
// TODO Implement function
}
}
Run Code Online (Sandbox Code Playgroud)
我的 Android Studio 向我展示了:
1- Type mismatch. Required: Boolean. Found: Int(下android.R.style.Theme_Translucent_NoTitleBar)。
2-Type mismatch. Required: DialogInterface.OnCancelListener! Found: () - > Unit围绕被覆盖的功能。
有什么建议?
我希望在我的应用程序中有一个alertdialog,每次显示时都会更新其消息.这是因为对话框值取决于应用程序上的某些值.
现在我尝试使用showDialog方法:
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
showDialog(RESULT_DIALOG);
return false;
}
Run Code Online (Sandbox Code Playgroud)
但是一旦创建了对话框,它就不会改变消息(我知道如果创建了对话框,它会使用已启动的版本).
我的onCreateDialog方法代码是:
public Dialog onCreateDialog(int dialogId) {
AlertDialog dialog;
switch(dialogId) {
case RESULT_DIALOG:
// do the work to define the pause Dialog
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(localTv.getText())
.setCancelable(false)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
dialog = builder.create();
break;
default:
dialog = null;
}
return dialog;
}
Run Code Online (Sandbox Code Playgroud)
有一种方法可以更新AlertDialog的内容.实际上我每次调用onTouch事件时都会创建一个新的对话框.但我不确定这是解决这个问题最干净的方法.
任何的想法?谢谢 :)