文本输入上的空白第二个活动页面

时间:2014-06-20 03:19:04

标签: android setcontentview

我是新来的,也是Android编程的新手。所以对此的任何帮助将不胜感激。

我正在运行Android应用程序(基本上是developer.android.com中给出的示例)。该应用程序的想法是让用户在第一个屏幕中输入消息,并在第二个屏幕中显示消息。 / p>

我遇到的问题是当我在“DisplayMessageActivity.java”中的“OnCreate”中使用以下代码时,我的应用程序工作正常,并在第二个屏幕上完美显示文本。

public class DisplayMessageActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    setContentView(textView);
}

但是当我使用时,

setContentView(J.layout.activity_display_message);

而不是

setContentView(textView);

然后它只显示空白的第二个屏幕。

“activity_display_message.xml”的代码如下,

<LinearLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".DisplayMessageActivity" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     />
</LinearLayout>

所以我的问题是为什么contentview,在这里引用“active_display_message.xml”,不起作用,哪种方式更好地显示文本。

3 个答案:

答案 0 :(得分:0)

我也是Android的新手,所以我可能不知道这一点,但到目前为止我读过的所有内容中我都没见过J.layout,而是R.layout

答案 1 :(得分:0)

要在布局中使用TextView,首先需要在android:id布局中为TextView设置active_display_message.xml属性。然后在活动中,使用findViewById方法调用它。例如:

布局中的

<TextView
    android:id="@+id/text_view_id"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
/>

然后在您的活动中,您需要调用它:

TextView textView = (TextView) findViewById(R.id.text_view_id)

答案 2 :(得分:0)

好的,这就是你在做什么

TextView textView = new TextView(this);

这意味着您要动态创建TextView。除非您需要,否则在TextView文件中xml时,您不需要执行此操作。出于您的目的,您不需要动态创建TextView

您应该使用您在TextView文件中创建的xml。您可以使用xml访问java文件中idfindViewById(R.id.control_id)中定义的任何控件(TextView / EditText),并且id将是唯一的。

首先为TextView指定一个id

    android:id="@+id/tv_1"  // assigning id

您的布局文件应如下所示

<LinearLayout 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:orientation = "vertical" >

<TextView
    android:id="@+id/tv_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     />
</LinearLayout>

然后在您的活动中,执行以下操作

public class DisplayMessageActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_xml);    // set the view that you want to display

Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

TextView myTextView = (TextView) findViewById(R.id.tv_1)   // make sure the id is correct
myTextView.setText(message);   // set the value 
myTextView.setTextSize(40);    // you can dynamically modify the text size

}