Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是android.R.id.message?_Android_Android Alertdialog - Fatal编程技术网

什么是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——是的,我去了,但没有找到
消息的文档,这就是我来这里的原因,我在寻找更完整的文档。你会认为他们会提供一个链接;不清楚
消息
指的是什么,尽管我想我最终还是弄明白了。也许那里有足够的文档,尽管有这么多条目除了常量值之外没有文档。