在第二个活动中使用xml的问题(R.id问题)

嘿,伙计们,我对Android编程有点陌生,我有个问题,需要帮助。

因此,我将使用android官方网站用于培训的第一个应用程序(http://developer.android.com/training/basics/firstapp/starting-activity.html)

我对创建第二个活动部分感到困惑。所以在他们传递了意图之后,他们使用java代码(而不是XML)创建了一个新的TextView,所以我尝试使用XML创建这个TextView。我在xml中为第二个活动创建了一个新的TextView,并给它一个id,如下所示:

下面是第二个活动的java代码:

在我更改之前,所有代码都运行良好。我改变了

收件人:

但由于某些原因,它找不到新的\u文本,Eclipse只建议id来自我的main.xml。为什么会这样?是因为R.id.blabla只从main获取id吗.xml?所以,如果不是来自main,我就不得不使用java代码进行布局.xml?

回答:1

只有在为活动设置了特定XML的视图后,才能调用这些小部件。例如,如果您有一个活动调用Main,您将使用一个XML作为该特定活动的UI,因此您可以调用在该特定XML中创建的小部件。由于您没有发布代码,我只能猜测您正在尝试使用TextView生成第二个XML,然后调用它。在活动开始时,当您设置布局时,可以从中调用小部件的XML,除非您膨胀视图以调用第二个XML,我想这不是您的情况。

我希望我正确理解了你的问题。

回答:2

这篇文章有很多困惑,但首先:

您打算最终让用户看到的每个活动都有自己的XML布局。如果你启动一个新的Android项目,默认情况下,它会给你一个位于res>layout文件夹中的XML布局和一个活动,默认情况下,它将作为面向用户的视觉活动。

出于您的目的,一些简单的方法可以确定一项活动是否是"视觉"活动,包括:

*它扩展了activity或其他一些android超类*它有一个"onCreate方法(通常位于类的顶部)*在该onCreate方法中有一行名为setContentView的代码,看起来像这样。

setContentView(R.layout.httpex);

setContentView方法很重要,就像是活动和xml布局之间的粘合剂。在R.布局之后。___ 转到要使用的XML布局的名称。

只有将内容视图设置为适当的视图后,才能使用创建的id将xml布局中的元素或"视图"链接到活动。这样地

TextView TextView=(TextView)findViewById(R.id.new_Text);

如果将内容视图设置为httpex.xml,则只能链接到httpex内部的视图.xml和等等。。。

我有一个spft的位置给新来的bc ik,这群人的无知会给他们带来什么新鲜血液,他们忘记了一开始有多困难,开始觉得所有这些东西都是常识和显而易见的,但如果我是你,我会去Newboston[dot]com看整个系列,然后在这里发布许多类似的问题,这样你就不会被激怒。

回答:3

添加setContentView() 之前的方法findViewById() 方法