2010-11-29 7 views
4

私は非常にAndroidの開発には新しく、私は4つのアクティビティがあるアプリケーションに取り組んでいます。各アクティビティは他のアクティビティのいずれかにナビゲートできる必要があります。そこで、私はこれを可能にする各アクティビティの上部に4つのボタンを作成しました。Androidのアクティビティナビゲーション

<Button ... android:onClick="loadProfileLayout"/> 
<Button ... android:onClick="loadRulesLayout"/> 
<Button ... android:onClick="loadSettingsLayout"/> 
<Button ... android:onClick="loadHelpLayout"/> 

マニフェストは、それぞれの活動のタグがあります:

<activity android:name=".Profiler" android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="Rules"></activity> 
    <activity android:name="Settings"></activity> 
    <activity android:name="Help"></activity> 

をと呼ばれる機能が、これらは以下のとおりです。

public void loadProfileLayout()  { startActivity(new Intent(this, Profiler.class)); } 
public void loadRulesLayout(View v) { startActivity(new Intent(this, Rules.class)); } 
public void loadSettingsLayout(View v) { startActivity(new Intent(this, Settings.class)); } 
public void loadHelpLayout(View v) { startActivity(new Intent(this, Help.class)); } 

だから、最初にこの作品のXMLコードは次のようになります。メインの "Profile"アクティビティから、私は他の3つのいずれかに移動することができます。そして、他の3つから、私はどこでもメインのものに戻ることができます。メインアクティビティボタンを押すと、アプリケーションがクラッシュします。私は試してデバッグしますが、loadProfileLayout()を実行しているようには見えません。 Eclipseは基本的に「ソースが見つかりません」という内容の「View.class」ファイルを開きます。 F8を押してデバッグを続行すると、「ZygoteInit $ MethodAndArgsCaller.run()」...ロードされます。「ソースが見つかりません」。 F8をもう一度押すと、エミュレータにエラーメッセージが表示されます。「申し訳ありません!アプリケーションが予期せず停止しました。もう一度お試しください。

また、私はAndroidに新しく、私が知っていることはすべて私が開発者のウェブサイトで読んできたことです。私はここで根本的な間違いをしていますか?

おかげで、
ネイト

+1

これはあなたに悲しみの原因になっているかどうかはわかりませんが、あなたのタグの名前を変更したい場合もあります。それらの前に(期間)。たとえば、でなければなりません。 – SpencerElliott

答えて

4

私はこれがあなたの質問にタイプミスしたかどうかわからないんだけど、loadProfileLayout()も、唯一のパラメータとしてViewを取る必要があります:

public void loadProfileLayout(View v) 

編集 :Viewパラメータは、onClickイベント(あなたのケースでは、Buttonインスタンス)を引き起こしたビューです。私はコードを見ていないが、私は、Viewが(特にViewを引数として取る)呼び出すメソッドを見つけるためにリフレクションを使用していると仮定しています。そして、一致するメソッドを見つけられないので、例外。

+0

それが問題でした。この議論について何らかの洞察を提供できますか?どのようなものが使われていますか?私はそれがdevサイトにどのように表示されたので、他にView vを含めました。しかし私は実際に私の関数でvオブジェクトを使用していません。何が目的なのですが、アプリケーションがなくてもアプリケーションがクラッシュするのはなぜですか? – linsek

+0

追加のテキストが追加されました。希望が助けてくれる! –

+0

です。あなたのおかげで、エリック。 – linsek