android: как изменить макет при нажатии кнопки?

Я должен выполнить следующий код для выбора макета при нажатии кнопки.

View.OnClickListener handler = new View.OnClickListener(){
    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.DownloadView: 
                // doStuff
                setContentView(R.layout.main);
                break;
            case R.id.AppView: 
                // doStuff
                setContentView(R.layout.app);
                break;
        }
    }
};

findViewById(R.id.DownloadView).setOnClickListener(handler);
findViewById(R.id.AppView).setOnClickListener(handler);

Когда я нажимаю кнопку «AppView», макет меняется, но когда я нажимаю кнопку «DownloadView», ничего не происходит.

Эта ссылка говорит, что мне нужно начать новое действие.

Но я не делаю этого. ' У меня есть код для нового действия:

package com.example.engagiasync;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class AppView extends Activity implements OnClickListener{


    @Override
    public void onCreate(Bundle savedInstanceState){

        setContentView(R.layout.app);

        TextView tv = (TextView) this.findViewById(R.id.thetext);
        tv.setText("App View yo!?\n");
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

    }
}

, но он не работает, он закрывается принудительно, logcat говорит: enter image description here

23
задан Benjamin 2 May 2014 в 10:46
поделиться