2012-02-27 5 views
1

私はカスタムコールフォワーディングシステムを実装する必要があり、そうする方法を探していました。私はAndroids自身のコール転送が素晴らしく見えて、リストビューをクリックしてアイテムをクリックするように促したいと決めました。基本的には、ユーザーがアイテムをクリックすると、このポップアップが表示されます。私は「呼び出し」は、この方法/ダイアログを示す行くにはどうすればよいこのダイアログボックスのポップアップをリストアイテムのクリックにするにはどうすればよいですか?

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

this

は、ここで私は、ダイアログボックスを実装しようとしているコードは?

答えて

1

がダイアログを宣言するために、このようにそれを使用し、クリックリスナーでそれを示しています

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のためのドキュメントを見てみることができます

builder.show(); 

builder.setView()の場合、次のようになります。 textviewとedittextからなるビュー(レイアウトなど)と、Figureと同じにしたい場合はボタンを渡します。

1

(たとえばonItemClickListener内に)独自のダイアログを作成する場合は、AlertDialog.Builderを開始するのが適切です。例えば:、

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

http://developer.android.com/reference/android/app/AlertDialog.Builder.html

+0

私はこの方法をおおまかにしているように思っています。私の編集を見てください:) – CodePrimate

関連する問題