2012-02-27 39 views
1

我得到了一个任务,我必须实现一个自定义呼叫转移系统,并正在寻找这样做的方法。我决定Android自己的呼叫转移看起来很棒,并决定我想提示用户点击列表视图上的某个项目。基本上我希望这个在用户点击一个项目时弹出。如何让此DialogBox在列表项上单击弹出?

this

下面是我想要执行的对话框代码:

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(); 
} 

我如何去“调用”这个方法/显示的对话框?

回答

1

使用这种方式来声明对话框,

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以及按钮,如果您想使其与图形相同。

1

如果您想构建自己的对话框(例如在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

+0

所以我发现这种方法似乎大致上是做我想做的事情。请看我的编辑:) – CodePrimate 2012-02-27 14:46:10

相关问题