如何制作另一个文本块?

时间:2014-07-05 19:53:59

标签: android

我理解如何用用户输入显示一些文本,但我感到困惑的是如何在我现在拥有的文本块之间添加一个全新的文本块(我想放一个新的文本块,因为我希望文本的大小不同)。现在,我显示“欢迎[用户输入]!”

在我的活动档案中,我有:

public class DisplayMessageActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Get the message from the intent
        Intent intent = getIntent();
        String message = "                Welcome " + intent.getStringExtra(MainActivity.EXTRA_MESSAGE) + "!";

        // Create the text view
        TextView textView = new TextView(this);
        textView.setTextSize(25);
        textView.setText(message);

        // Set the text view as the activity layout
        setContentView(textView);
    }

在我的fragment.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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.myfirstapp.DisplayMessageActivity$PlaceholderFragment"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:weightSum="1">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal" />

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

在我从其他用户那里获得的反馈的帮助下,我添加了android:text =“TEST”第二个“TextView”。我还将android:orientation =“vertical”添加到LinearLayout。但是当我运行应用程序时,“TEST”仍然没有出现!提前谢谢。

2 个答案:

答案 0 :(得分:2)

您没有将布局与Activity相关联。相反,您在运行时添加了TextView,它是在运行时创建的。这就是为什么只出现一个TextView的原因。您必须使用setContentView(R.layout.mylayout);而不是setContentView(textView);,因此您的Activity会获取您的布局。

修改:在您的布局中,向您的TextViews添加ID,以便您可以使用Activity代码访问它们,如下所示:

<TextView
    android:id="@+id/myFirstTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="TEST1" />

<TextView
    android:id="@+id/mySecondTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="TEST2" />

然后在ActivityonCreate()

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_layout);

        // Get the message from the intent
        Intent intent = getIntent();
        String message = "                Welcome " + intent.getStringExtra(MainActivity.EXTRA_MESSAGE) + "!";

        TextView textView1 = (TextView) findViewById(R.id.myFirstTextView);
        TextView textView2 = (TextView) findViewById(R.id.mySecondTextView);

        textView1.setTextSize(25);
        textView1.setText(message);

    }

答案 1 :(得分:1)

假设fragment.xml位于res / layout文件夹中

setContentView(R.layout.fragment);

而不是

setContentView(textView);