0

これは、Android にある程度慣れている人にとっては非常に簡単な答えであるはずです。私は、いじり始めたばかりです。メインとその他の 2 つのビューがあります。各ビューには、ビューを切り替えるボタンがあります。これは私の活動です:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.other);

    switcher = (Button) findViewById(R.id.button);
    switcherListener = new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.other);
        }
    };
    switcher.setOnClickListener(switcherListener);

    switcher2 = (Button) findViewById(R.id.button2);
    switcherListener2 = new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.main);
        }
    };
    switcher2.setOnClickListener(switcherListener2);
}

private Button switcher, switcher2;
private View.OnClickListener switcherListener, switcherListener2;

問題は、ロードさえしないことです.Androidエミュレーターは、動作を停止したと言います. これを機能させるには何を変更すればよいですか?

4

1 に答える 1

0

これは、これswitcher2が作成されていないビューにあるR.layout.mainためです。したがって、呼び出すswitcher2 = (Button) findViewById(R.id.button2);と、まだ膨張していないビューになります。次のことを試してみてください。ただし、適切なコーディングではありません。

switcher = (Button) findViewById(R.id.button);
    switcherListener = new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.other);
            switcher2 = (Button) findViewById(R.id.button2);
            switcher2.setOnClickListener(switcherListener2);
        }
    };
    switcher.setOnClickListener(switcherListener);

    switcherListener2 = new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.main);
        }
    };
于 2013-06-05T14:20:12.497 に答える