如何让此DialogBox在列表项上单击弹出?
问题描述:
我得到了一个任务,我必须实现一个自定义呼叫转移系统,并正在寻找这样做的方法。我决定Android自己的呼叫转移看起来很棒,并决定我想提示用户点击列表视图上的某个项目。基本上我希望这个在用户点击一个项目时弹出。如何让此DialogBox在列表项上单击弹出?
下面是我想要执行的对话框代码:
public class CallForwardActivity extends ListActivity
{
String[] settingsLabels = {"Viderestillinger", "Altid", "Optaget", "Ingen svar", "Timeout"};
int position;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView lv = getListView();
lv.setTextFilterEnabled(true);
setListAdapter(new ArrayAdapter<String>(this, R.layout.callforward_items, R.id.callforward_item_text, settingsLabels));
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
// Open Dialog Box with an edittext view for setting the correct number to Call forward
myTextDialog().show() // ???
}
});
}
private Dialog myTextDialog() {
final View layout = View.inflate(this, R.layout.custom_dialog, null);
final EditText savedText = ((EditText) layout.findViewById(R.id.myEditText));
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(0);
builder.setPositiveButton("Save", new Dialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String myTextString = savedText.getText().toString().trim();
}
});
builder.setView(layout);
return builder.create();
}
我如何去“调用”这个方法/显示的对话框?
答
使用这种方式来声明对话框,
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(//your view)
.setPositiveButton("Update", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, final int id) {
//update click
}
})
.setNeutralButton("Disable", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, final int id) {
//disable click
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, final int id) {
//cancel click
}
});
,并显示在点击监听器如下,
builder.show();
在功能builder.setView()
你有要传递给它一个视图(例如布局),其中包含textview和edittext以及按钮,如果您想使其与图形相同。
答
如果您想构建自己的对话框(例如在onItemClickListener中),那么AlertDialog.Builder是一个很好的开始。例如:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
new AlertDialog.Builder(view.getContext())
.setMessage("Something here")
.setNegativeButton("Close", null).show();
}
});
你可以看看该文档的AlertDialog这里:http://developer.android.com/reference/android/app/AlertDialog.Builder.html
所以我发现这种方法似乎大致上是做我想做的事情。请看我的编辑:) – CodePrimate 2012-02-27 14:46:10