嘿伙计们,我对 Android 编程有点陌生,我有一个问题需要帮助。
所以我将使用官方 android 网站用于培训的第一个应用程序 (http://developer.android.com/training/basics/firstapp/starting-activity.html)
我对创建第二个活动部分感到困惑。因此,在他们通过意图后,他们使用 java 代码(而不是 XML)创建了一个新的 TextView,所以我尝试使用 xml 创建该 TextView。我在 xml 中为第二个活动创建了一个新的 TextView,并给它一个这样的 id:
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".DisplayMessageActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:id="@+id/new_Text"/>
</LinearLayout>
这是第二个活动的java代码:
package com.example.myfirstapp;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.MenuItem;
import android.widget.TextView;
import android.support.v4.app.NavUtils;
public class DisplayMessageActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the message from the intent
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
// Create the text view
TextView textView = (TextView) findViewById(R.id.new_Text);
textView.setTextSize(40);
textView.setText(message);
// Set the text view as the activity layout
setContentView(textView);
// Show the Up button in the action bar.
// getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
}
在我更改之前,所有代码都运行良好。我变了
TextView textView = new TextView(this);
到:
TextView textView = (TextView) findViewById(R.id.new_Text);
但由于某种原因,它找不到 new_Text 并且 Eclipse 只建议来自我的 main.xml 的 id。为什么会这样?是因为 R.id.blabla 只从 main.xml 获取 id 吗?那么,如果它们不是来自 main.xml,我是否被迫使用 java 代码进行布局?