什么是android.R.id.message?
我在一个什么是android.R.id.message?,android,android-alertdialog,Android,Android Alertdialog,我在一个AlertDialog对象中找到了两个SO线程,它们告诉我如何居中,并通过编写一个方法伪造了我的方法,我希望能够调用该方法来居中任何AlertDialog。它在手机和平板电脑上运行良好,甚至可以显示多行信息,无论是否使用'\n's public void showCenteredInfoDialog(TextView _title, TextView _message) { _title.setGravity(Gravity.CENTER); LayoutInfl
AlertDialog
对象中找到了两个SO线程,它们告诉我如何居中,并通过编写一个方法伪造了我的方法,我希望能够调用该方法来居中任何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);
}
我做了大量的定制——也就是说,我对自己的发现和所做的事情有了一些线索——但有一句话让我感到疑惑:
TextView messageView=(TextView)dialog.findviewbyd(android.R.id.message)代码>
什么是安卓.R.id.message
是我能找到的关于它的所有文档:
android.R.id
public static final int message = 16908299
在哪里可以找到有关Android.R.id
对象(以及更多)的更多文档?这似乎是一个可能的金矿。android.R.id.message
指的是资源,其id名为message
例如,此处的文本视图:
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/backbutton"
android:text="Back"
android:layout_x="10px"
android:layout_y="5px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/message"
android:layout_x="10px"
android:layout_y="110px"
android:text="First Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</AbsoluteLayout>
在Android中,布局中包含的视图通常(尽管不总是)有一个id。该id的目的是能够识别特定视图,例如:
Button button = (Button)layout.findViewById(R.id.button1);
button.setOnClickListener(...);
创建布局XML文件时,通常为视图创建新ID,语法如下:
<Button
android:id="@+id/button1"
...
@matiash的回答提供了一些很好的见解
最简单的说法是,假设您为一个对话框提供了一个自定义布局,您只需使用R.id.viewId
访问一个视图,这个id是您在自定义xml布局中定义的
android.R.id.message
将允许您访问由android预定义的视图。例如,在您的案例中,您正在使用具有预定义布局的AlertDialog。因此,使用特定id,您将能够访问TextView,您可以在其中设置AlertDialog中的消息 看看android:id=“@+id/message”
这与android.R.id.message
不同。你正在这个布局中定义一个新的资源id。在Android中,你在布局中定义id,就像我一样。然后,您可以使用Android.R.id.something以编程方式访问它。你真的需要阅读培训。您缺少的概念太多,无法开始编写任何代码。这也需要你几天的时间,你会学到很多必要的信息。这是不对的android.R.id
是类,它在框架本身中定义,不包含您自己的视图id,并且不可扩展。我认为你把它和为你的项目生成的R类混淆了。虽然它们有相同的结构,但它们不一样。@MikelPascual——你可以原谅。我去过很多地方,在我需要专注的时候,为我想做的具体事情找到了零碎的东西。我去过那里,但这是一本很长的书,所以我太依赖我的“24小时Android开发”了——这是相当肤浅的,正如标题清楚地暗示的那样。它几乎没有提到R,至少在网上搜索和索引中是这样。顺便说一句,我也“掉进”了消息
陷阱——这就是我重命名参数\u消息
的原因。然后我就糊涂了。现在我不是。@matiash——是的,我去了,但没有找到消息的文档,这就是我来这里的原因,我在寻找更完整的文档。你会认为他们会提供一个链接;不清楚消息
指的是什么,尽管我想我最终还是弄明白了。也许那里有足够的文档,尽管有这么多条目除了常量值之外没有文档。