2017-05-29 11 views
0

私はアクティビティでアクティビティを開こうとしています。私はMainActivityからやり遂げることに成功しましたが、何らかの理由でこれでもう一度やり直すことはできません。Android Studioアクティビティを開く

私は非常にこれに新しいです、助けてください。

package com.example.edonfreiner.siddur; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class Davening extends AppCompatActivity { 
    Button shacharisButton, minchaButton, maarivButton; 

    public void openShacharis() { 
     shacharisButton = (Button) findViewById(R.id.shacharis); 
     shacharisButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 


       Intent open = new Intent(Davening.this, Shacharis.class); 

       startActivity(open); 



      } 
     }); 
    } 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_davening); 

     openShacharis(); 


    } 
} 

これは私のクラスにコードされ、エラーはすべてのボタンと参照がXMLファイル内に存在する意味はありません。

ありがとうございます。

+1

あなたのアンドロイドマニフェストに宣言された 'Shacharis'アクティビティがありますか?ログはありますか? – Logain

+0

私は、ありがとう、ありがとうございました。それは正確に何ですか? –

答えて

0

あなたが作成したロジックは間違っています。なぜならonCreate内のonClickをアクティブにしない関数を呼び出しているからです。オブジェクトをクリックすると、openChacharisの中にカプセル化されているため、onClickはアクティブ化されません。だから、解決策はopenShacharis、この方法からのonClickを離陸することです:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_davening); 

    shacharisButton = (Button) findViewById(R.id.shacharis); 
    shacharisButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      openShacharis(); 
     } 
    }); 
} 

public void openShacharis() { 
    Intent open = new Intent(Davening.this, Shacharis.class); 
    startActivity(open); 
} 
+0

コードに使用されている名前は誤解を招くものでしたが、ロジックは正しいものでした。 'onCreate'の間、彼は' openShacharis'を呼び出します。これは、アクティビティを開くためのコールバックでクリックリスナを設定します。 彼の 'openShacharis'はオープンしていないのですが、リスナーを登録しているだけなので、命名に同意しますが、それは彼の問題の根本的な原因ではありません。 – Logain

0

すべての活動は、Androidマニフェストに登録する必要があります。 あなたのコメントに述べたとおり、登録していないと開けません。

This documentationが役に立ちます。特にその部分Adds the required <activity> element in AndroidManifest.xml.

+0

OPが言ったので奇妙です**エラーはありません**。マニフェストに登録されていない場合、エラーが発生します。ご意見ありがとうございます。 – statosdotcom

+0

あなたが正しいのは、アクティビティがマニフェストに登録されていない場合は、ログにエラーが発生します。私の前提は、アプリケーションがクラッシュしたり、コンパイルの警告を引き起こしたりしないため、OPはそれを逃したということです。 – Logain

関連する問題