2016-05-03 16 views
0

ボタンをクリックした結果新しいアクティビティを開始しようとしていますが、空白の画面しか表示されません。いずれのXML要素も表示されません。興味深いことに、私が電話の「戻る」ボタンを押すたびに、「残念ながら、仕事が止まった」というメッセージが表示されます。このダイアログで「OK」をクリックすると、実際のレイアウトが表示されます。私はのOnClickメソッド内で新しい活動を始めるのはここ新しいアクティビティで空白の画面が表示される - Android

は次のとおりです。ここで

public void onClick(View v) { 
    switch(v.getId()){ 
     case R.id.bLogout: 
      userLocalStore.clearUserData(); 
      userLocalStore.setUserLoggedIn(false); 
      startActivity(new Intent(MainActivity.this, Login.class)); 
     case R.id.bCreateLeague: 
      startActivity(new Intent(MainActivity.this, CreateLeague.class)); 
     case R.id.bJoinLeague: 
      startActivity(new Intent(MainActivity.this, JoinLeague.class)); 
     case R.id.bViewLeagues: 
      startActivity(new Intent(MainActivity.this, ViewLeagues.class)); 
} 

はCreateLeague.class内の私のOnCreate関数のコードです:

:ここ

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

    //create variables for all xml objects 
    etLeagueName = (EditText)findViewById(R.id.etLeagueName); 
    etLeaguePassword = (EditText)findViewById(R.id.etLeaguePassword); 
    bCreateLeague = (Button)findViewById(R.id.bCreateLeague); 
    tvGoBack = (TextView)findViewById(R.id.tvGoBack); 

    //set OnClickListeners 
    bCreateLeague.setOnClickListener(this); 
    tvGoBack.setOnClickListener(this); 
} 

は私のcontent_create_league.xmlファイルです

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:orientation="vertical" 
android:layout_height="match_parent" 
android:padding="10dp" 
android:layout_width="match_parent"> 



<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 


     <TextView 
      android:layout_width="wrap_content" 
      android:text="League Name" 
      android:layout_height="wrap_content"/> 

     <EditText 
      android:id="@+id/etLeagueName" 
      android:layout_width="match_parent" 
      android:layout_marginBottom="10dp" 
      android:layout_height="wrap_content" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:text="Create a password" 
      android:layout_height="wrap_content" /> 

     <EditText 
      android:id="@+id/etLeaguePassword" 
      android:layout_width="match_parent" 
      android:inputType="textPassword" 
      android:layout_marginBottom="10dp" 
      android:layout_height="wrap_content" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:text="Re-type Password" 
      android:layout_height="wrap_content" /> 

     <EditText 
      android:id="@+id/etReTypeLeaguePassword" 
      android:layout_width="match_parent" 
      android:inputType="textPassword" 
      android:layout_marginBottom="10dp" 
      android:layout_height="wrap_content" /> 

     <Button 
      android:id="@+id/bCreateLeague" 
      android:text="Create League" 
      android:layout_width="match_parent" 
      android:layout_marginBottom="10dp" 
      android:layout_height="wrap_content" /> 

     <TextView 
      android:id="@+id/tvGoBack" 
      android:layout_width="wrap_content" 
      android:text="Go Back" 
      android:textStyle="bold" 
      android:layout_gravity="center_horizontal" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 
</ScrollView> 

マイactivity_create_league.xmlファイル:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
tools:context="com.example.myname.myapp.CreateLeague"> 

<include layout="@layout/content_create_league" /> 

そして、私のAndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.myname.myapp"> 

<uses-permission android:name="android.permission.INTERNET" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name=".Login" /> 

    <activity android:name=".Register" /> 

    <activity 
     android:name=".CreateLeague" 
     android:label="@string/title_activity_create_league" 
     android:theme="@style/AppTheme.NoActionBar" /> 
    <intent-filter> 
     <action android:name="com.example.myname.myapp.CreateLeague" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 

    <activity 
     android:name=".JoinLeague" 
     android:label="@string/title_activity_join_league" 
     android:theme="@style/AppTheme.NoActionBar" /> 
    <activity 
     android:name=".ViewLeagues" 
     android:label="@string/title_activity_view_leagues" 
     android:theme="@style/AppTheme.NoActionBar"></activity> 
</application> 

そして最後に、ここに私のプログラムを押した後にクラッシュしたときからlogcatがあります電話の戻るボタン:

FATAL EXCEPTION: main 
Process: com.example.myname.myapp, PID: 15584 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myname.myapp/com.example.myname.myapp.JoinLeague}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
at com.example.myname.myapp.JoinLeague.onCreate(JoinLeague.java:28) 
at android.app.Activity.performCreate(Activity.java:6237) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
at android.app.ActivityThread.-wrap11(ActivityThread.java)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:148)  
at android.app.ActivityThread.main(ActivityThread.java:5417)  
at java.lang.reflect.Method.invoke(Native Method)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  

これはどのような関係かわかりませんが、デバッグモードでコードをステップ実行するときに、CreateLeague.javaコードのsavedInstanceStateの値がnullであることがわかりました。

関連するボタンをクリックしてXMLコンテンツを表示するにはどうすればよいですか?私はいくつかのチュートリアルを見てきました。私が知る限り、適切にやっています。また、戻るボタンを押したときにレイアウトが表示されるのはなぜですか?あらゆる解決策やアイデアが評価されます。

+2

スイッチブロック –

+0

の各ケースの後にbreakキーワードを使用します。ありがとう! – Johnny

答えて

0
setContentView(R.layout.activity_create_league); 
関連する問題