如何在应用程序中组织Android对话框源?

时间:2012-02-24 03:49:38

标签: android dialog organization

我的应用程序包含许多对话窗口。它已经达到了源头似乎势不可挡的程度。我正在寻找关于隔离Dialog源的最佳方法的意见。我是Java的新手,所以我假设我可以将它们放在一个单独的类中。但是,在Android中执行此操作的确切方法包括我。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

你可以通过扩展对话来创建对话,如下所示 1.为customDialog创建Layout.xml 创建包含视图的新布局。在这个例子中,我使用了edittext和按钮。

<?xml version="1.0" encoding="utf-8"?>

<EditText android:id="@+id/EditText01" android:layout_height="wrap_content" android:text="Enter your name" android:layout_width="250dip"></EditText>

<Button android:id="@+id/Button01" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:text="click"></Button>

  1. 创建自定义对话框类。 一个。创建一个类扩展对话框类 湾创建事件处理程序接口作为成员 C。在onCreate方法中使用自定义布局。

    public class MyCustomDialog extends Dialog {
    
    public interface ReadyListener {
        public void ready(String name);
    }
    
    private String name;
    private ReadyListener readyListener;
    EditText etName;
    
    public MyCustomDialog(Context context, String name, 
            ReadyListener readyListener) {
        super(context);
        this.name = name;
        this.readyListener = readyListener;
    }
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mycustomdialog);
        setTitle("Enter your Name ");
        Button buttonOK = (Button) findViewById(R.id.Button01);
        buttonOK.setOnClickListener(new OKListener());
        etName = (EditText) findViewById(R.id.EditText01);
    }
    
    private class OKListener implements android.view.View.OnClickListener {
        @Override
        public void onClick(View v) {
            readyListener.ready(String.valueOf(etName.getText()));
            MyCustomDialog.this.dismiss();
        }
    }
    

    }

  2. 创建MainActivity并实现CustomDialog

    公共类MainActivity扩展Activity {     /** 在第一次创建活动时调用。 * /     @覆盖     public void onCreate(Bundle savedInstanceState){         super.onCreate(savedInstanceState);         的setContentView(R.layout.main);         MyCustomDialog myDialog = new MyCustomDialog(this,“”,                 new OnReadyListener());         myDialog.show();     }     私有类OnReadyListener实现MyCustomDialog.ReadyListener {         @覆盖         public void ready(String name){             Toast.makeText(MainActivity.this,name,Toast.LENGTH_LONG).show();         }     } }