2012-11-15 17 views
2

我正在構建Android應用並創建了登錄屏幕。下一個屏幕將顯示登錄用戶的一組選項,他必須從中選擇一個。在Android應用中定義活動的佈局

第二項活動是從的onPostExecute方法開始使用startActivity(intent)代碼。

Intent intent = null; 
intent = new Intent(context, DisplayMessageActivity.class); 
    context.startActivity(intent);  

我想建立使用.xml文件activity_display_message.xml此屏幕的UI。這個條目已經發送到清單文件。 我在這個.xml文件中指定的任何佈局屬性都沒有得到應用。任何在這方面的幫助,高度讚賞。例如使用下面的代碼,我無法獲得我設置的背景顏色。這對我的主要活動使用的.xml工作正常。

我DisplayMessageActivity類的onCreate功能

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_display_message); 

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

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

    setContentView(textView); 
} 

完整activity_display_message.xml文件

<RelativeLayout 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:background="@color/background_color"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:text="@string/hello_world" 
    tools:context=".DisplayMessageActivity" /> 

</RelativeLayout> 
+0

請爲DisplayMessageActivity和完整的佈局XML顯示onCreate。 – Simon

+0

background_color是如何定義的? –

+0

我有res /值下的colors.xml文件。這包含一個background_color的條目,很像strings.xml中的條目 –

回答

1

我看到這裏有兩個問題,很可能造成您的問題。您第一次使用setContentView這樣的:

setContentView(R.layout.activity_display_message); 

施加XML文件的活動,這是要你想要的。稍後,您再次用本地創建的TextView再次調用它。如果你想要在屏幕上包含一個Activity,那麼這是一種方法,但這裏不需要它,因爲你已經有了活動的XML定義。

其次,你的XML文件的TextView沒有android:id。這用於引用代碼中的TextView。因此,修改XML的TextView補充說,像這樣:

<TextView 
android:id="@+id/txtView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_centerHorizontal="true" 
android:layout_centerVertical="true" 
android:text="@string/hello_world" 
tools:context=".DisplayMessageActivity" /> 

然後,回到你的onCreate,而不是建造新TextViewTextView textView = new TextView(this);,從您申請這樣的XML訪問TextView

TextView textView = (TextView) findViewById(R.id.txtView); 

請注意,findViewById的參數是您在XML中創建的ID。

+0

非常感謝!這對我有效。 –