在Android应用程序中定义活动的布局

时间:2012-11-15 17:19:48

标签: android android-layout

我正在构建和Android应用程序并创建了登录屏幕。下一个屏幕将向登录用户显示一组选项,他必须从中选择一个选项。

第二项活动是使用onPostExecute代码从AsyncTask的{​​{1}}方法开始的。

startActivity(intent)

我正在尝试使用.xml文件Intent intent = null; intent = new Intent(context, DisplayMessageActivity.class); context.startActivity(intent); 为此屏幕构建UI。已对清单文件进行了此操作。 我在此.xml文件中指定的任何布局属性都未应用。在这方面的任何帮助都非常感谢。例如,使用下面的代码我无法获得我设置的背景颜色。这适用于我的主要活动.xml。

我的DisplayMessageActivity类的onCreate函数是

activity_display_message.xml

完整的@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_message); Intent intent = getIntent(); String message = intent.getStringExtra(CommonStaticValues.EXTRA_MESSAGE); TextView textView = new TextView(this); textView.setTextSize(40); textView.setText(message); setContentView(textView); } 文件是

activity_display_message.xml

1 个答案:

答案 0 :(得分:1)

我发现这里有两个可能导致问题的问题。您首先使用setContentView,如下所示:

setContentView(R.layout.activity_display_message);

将您的XML文件应用于Activity,这是您想要的。稍后,您使用本地创建的TextView再次调用它。如果你想在屏幕上显示由Activity组成的TextView,这是一种方法,但你不需要它,因为你已经有了活动的XML定义。

其次,您的XML文件TextView没有android:id。这用于引用代码中的TextView。因此,修改您的XML TextView以添加如下:

<TextView
android:id="@+id/txtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world"
tools:context=".DisplayMessageActivity" />

然后,回到onCreate,而不是使用TextView构建新的TextView textView = new TextView(this);,请从您应用的XML中访问TextView,如下所示:

TextView textView = (TextView) findViewById(R.id.txtView);

请注意findViewById的参数是您在XML中创建的ID。