2012-02-07 7 views
0

多くのxmlレイアウトでAndroidアプリケーションを作成しようとしていますが、ここで問題が発生します。 2番目のボタンで問題が発生し、アプリケーションがクラッシュします。2つ以上のレイアウトを使用する

public class MonkeyQuest_androidActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    final Button newGame = (Button) findViewById(R.id.newGame); 
    newGame.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      setContentView(R.layout.name); 
      final Button setName= (Button) findViewById(R.id.setName); 
      setName.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        setContentView(R.layout.Menu); 
       } 
      }); 
     } 
    }); 
} 

}

+2

「多くのXMLレイアウト」とはどういう意味ですか?あなたは多くの活動が必要であることを意味しますか? 1つのアクティビティに対してレイアウトを複数回変更しようとしているようですね。 「問題は第2ボタンから始まる」とはどういう意味ですか?何番のボタン?あなたは例外を取得していますか?例外は何ですか?あなたが達成しようとしていることとその理由について、logcat(関連するビットのみ)と詳細情報を投稿してください。 – Simon

答えて

2

代わりに新しいレイアウトにコンテンツビューを設定するので、新しいアクティビティを起動して、あなたがこの活動に行うことを活動のonCreate()のコンテンツを表示、同じように設定してください。

と起動新しいアクティビティを:

Intent intent = new Intent(this, NewActivity.class); 
startActivity(intent); 

続きを読む:(再インスタンス化しない限り)そうでなければ、あなたは活動の中で宣言したすべてのビューは、新たな膨張したビューの後ろになりますhttp://www.javacodegeeks.com/2010/11/android-full-app-part-5-launch-activity.html#ixzz1ljJohpib

、およびその他にも多くの問題を引き起こす可能性があります。

1

setContentView()に1回のアクティビティで複数回通話することはできません。

レイアウトを切り替えるには、新しいアクティビティを作成するか、必要なビューをすべて1つのレイアウトに入れ、setVisibility()で関連するものだけを非表示にするか、 ViewFlipper

関連する問題