我的目标是在用户点击我的小部件时弹出一个简单的输入框。
大多数教程似乎都使用showDialog(),但显然已弃用。
我有一个半工作的解决方案,但对于这么简单的任务来说,这似乎非常复杂。
在小部件的onUpdate
方法中,我调用setOnClickPendingIntent
,其意图设置为启动FragmentActivity TextDialogActivity。
在TextDialogActivity的onCreate
方法中,我调用new TextDialog
,然后调用show
方法。
TextDialog扩展了一个DialogFragment,它的布局XML定义了一个EditText,并在我的onCreateDialog
方法中添加了正面和负面按钮,设置监听器以捕获Okay上的输入或finish
取消活动。
这是一个初学黑客,还是这个在Android中创建一个简单的文本输入框的方式呢?
另外,我说它只是半工作,因为活动在主屏幕上弹出一个背景,而不是简单地覆盖主屏幕的输入对话框。我认为这是我的初学者黑客的副作用,但如果这实际上是正确的方法,我做错了什么导致了这个?我原本以为没有在TextDialogActivity中调用setContentView
,这不会发生。
答案 0 :(得分:0)
试试这个
final EditText et=new EditText(MainActivity.this);
new AlertDialog.Builder(MainActivity.this)
.setTitle("Title")
.setView(et)
.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
//enter your code
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
//enter your code
}
})
.create()
.show();