0

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

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

我遇到的问题是,当我在“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”不起作用,这是显示文本的更好方法,在这里。

4

3 回答 3

0

我也是 Android 新手,所以这对我来说可能是未知的,但在我迄今为止读过的所有内容中,我从未见过J.layout,而是R.layout.

于 2014-06-20T03:27:59.707 回答
0

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

在您的布局中:

<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)
于 2014-06-20T03:39:12.817 回答
0

好的,这就是你正在做的

TextView textView = new TextView(this);

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

你应该做的是使用TextView你在xml文件中创建的。您可以使用 访问您在 java 文件中定义xml的任何控件(TextView/EditText) ,并且 id 将是唯一的。 idfindViewById(R.id.control_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

}

于 2014-06-20T04:35:34.803 回答