2

私はAndroidアプリを構築しており、ログイン画面を作成しています。次の画面では、ログインしたユーザーに一連のオプションが表示され、その中から 1 つを選択する必要があります。

2 番目のアクティビティは、コードを使用してのonPostExecuteメソッドから開始されます。AsyncTaskstartActivity(intent)

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

.xml ファイルを使用して、この画面の UI を作成しようとしていますactivity_display_message.xml。このエントリは、マニフェスト ファイルに作成されています。この .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>
4

1 に答える 1

1

おそらくあなたの問題を引き起こしている2つの問題があります。最初に次のsetContentViewように使用します。

setContentView(R.layout.activity_display_message);

これにより、XML ファイルが必要なアクティビティに適用されます。後で、TextViewローカルに作成した を使用して再度呼び出します。Activity画面上のもので構成される が必要な場合TextViewは、それを行う 1 つの方法ですが、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" />

次に、 に戻り、新しいwithonCreateを作成する代わりに、次のように適用した XML からにアクセスします。TextViewTextView textView = new TextView(this);TextView

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

の引数findViewByIdは、XML で作成した ID であることに注意してください。

于 2012-11-15T17:42:54.137 に答える