我理解如何用用户输入显示一些文本,但我感到困惑的是如何在我现在拥有的文本块之间添加一个全新的文本块(我想放一个新的文本块,因为我希望文本的大小不同)。现在,我显示“欢迎[用户输入]!”
在我的活动档案中,我有:
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”仍然没有出现!提前谢谢。
答案 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" />
然后在Activity
内onCreate()
:
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);