DSl*_*r64 2 android android-alertdialog
我找到了两个 SO 线程,它们告诉我如何在对象中居中标题和消息,AlertDialog并通过编写我希望能够调用以居中 any 的方法来伪造我的方式AlertDialog。它在手机和平板电脑上运行良好,甚至可以显示多行消息,无论是否带有'\n's。
public void showCenteredInfoDialog(TextView _title, TextView _message) {
_title.setGravity(Gravity.CENTER);
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("OK", null);
builder.setCustomTitle(_title);
builder.setMessage(_message.getText());
AlertDialog dialog = builder.show();
TextView messageView = (TextView)
dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.CENTER);
}
Run Code Online (Sandbox Code Playgroud)
我做了大量的定制——即,我对我的发现和所做的事情有一些线索——但有一行让我想知道:
TextView messageView = (TextView) dialog.findViewById(android.R.id.message);
什么是 android.R.id.message?
这是我能找到的所有相关文档:
android.R.id
public static final int message = 16908299
Run Code Online (Sandbox Code Playgroud)
我在哪里可以找到有关Android.R.id对象(以及更多)的更多文档?这似乎是一个可能的金矿。
在 Android 中,布局中包含的视图通常(尽管并非总是如此)有一个 id。这个 id 的目的是能够识别特定的视图,例如:
Button button = (Button)layout.findViewById(R.id.button1);
button.setOnClickListener(...);
Run Code Online (Sandbox Code Playgroud)
创建布局 XML 文件时,通常会为视图创建新的 id,语法为:
<Button
android:id="@+id/button1"
...
Run Code Online (Sandbox Code Playgroud)
这将在项目的R 文件 ( R.id.button1) 中创建一个整数值。
android.R.id,另一方面,包含在 Android 框架中定义或必须以某种方式被它引用的视图的 id。
在您的示例中,AlertDialog.Builder创建了一个具有固定ID的 TextView android.R.id.message。这样,您可以获取 返回的视图层次结构show(),并在其中找到 TextView。
您可以查看文档中预定义 id 的完整列表,但是该列表本身并没有提供太多信息。这些 id 通常在使用它们的每个特定功能的文档中提到。
作为另一个用例的示例(使用预定义的 android id 标记您自己的视图),当使用 时ListFragment,如果您提供自定义布局,则必须包含一个带有 id 的 ListView R.id.list。这是因为ListFragment该类检查膨胀的布局以查找此小部件。请参阅文档:
ListFragment 具有由单个列表视图组成的默认布局。但是,如果您愿意,您可以通过从 onCreateView(LayoutInflater, ViewGroup, Bundle) 返回您自己的视图层次结构来自定义片段布局。为此,您的视图层次结构必须包含一个 ID 为“@android:id/list”的 ListView 对象(如果它在代码中,则为列表)
或者,您的视图层次结构可以包含任何类型的另一个视图对象,以在列表视图为空时显示。这个“空列表”通知器必须有一个id“android:empty”。
| 归档时间: |
|
| 查看次数: |
4033 次 |
| 最近记录: |