2

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

第二个活动是从使用代码的onPostExecute方法开始的。AsyncTaskstartActivity(intent)

Intent intent = null;
intent = new Intent(context, DisplayMessageActivity.class);
    context.startActivity(intent);      

我正在尝试使用 .xml 文件为此屏幕构建 UI activity_display_message.xml。已在清单文件中输入了此条目。我在此 .xml 文件中指定的任何布局属性都没有得到应用。非常感谢这方面的任何帮助。例如,使用下面的代码我无法获得我设置的背景颜色。这适用于我的主要活动的 .xml。

我的 DisplayMessageActivity 类的 onCreate 函数是

@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文件是

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:background="@color/background_color">

<TextView
    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" />

</RelativeLayout>
4

1 回答 1

1

我在这里看到两个可能导致您的问题的问题。你首先setContentView像这样使用:

setContentView(R.layout.activity_display_message);

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

其次,您的 XML 文件TextView没有 android:id。那是用来TextView从代码中引用的。因此,修改您的 XMLTextView以添加如下内容:

<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的 with TextView textView = new TextView(this);TextView从您应用的 XML 中访问 ,如下所示:

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

请注意,参数 forfindViewById是您在 XML 中创建的 id。

于 2012-11-15T17:42:54.137 回答