2016-07-04 14 views
-2

何らかの理由で、静的なRelativeLayoutからビューを削除できません。レイアウトはアクティビティ内では静的なので、すべてのビューからアクセスできます。例:私のIntroView経由。 MainActivity.layout.removeView(これ)、すべて正常に動作しますが、私がLevelView(MainActivity.layout.removeView(this))と同じ操作を行うと、NullPointerが生成され、そのLevelView(またはLayout?)はnullになります。それはIntroViewと同じようにonCreateで初期化されるので奇妙ですが、何らかの理由でIntroViewで動作しますか?静的レイアウトからビューを削除しますか? (Nullpointer)

ありがとう、私はあなたが何を意味するかを理解していただきたいと思います。

package catgames.lineland; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.widget.RelativeLayout; 

import com.azilen.locationbasedreminder.R; 

import catgames.framework.Music; 
import catgames.views.HudView; 
import catgames.views.IntroView; 
import catgames.views.Level1; 
import catgames.views.Level2; 

public class MainActivity extends Activity { 

    // Layout 
    public static RelativeLayout layout; 

    // Current Screen 
    public static String screen; 

    // Views 
    public static IntroView introview; 
    public static HudView hudview; 

    // Level 
    public static Level1 level1; 
    public static Level2 level2; 

    // Music 
    public static Music music; 

    // Context 
    public static Context context; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Context 
     context = this; 

     // Layout 
     layout = new RelativeLayout(this); 
     layout.setBackgroundResource(R.drawable.backdrop); 
     setContentView(layout); 

     // Level 
     introview = new IntroView(); 
     hudview = new HudView(); 
     level1 = new Level1(); 
     level2 = new Level2(); 

     // Screen 
     screen = "IntroView"; 

     // Layout 
     layout.addView(introview); 
     layout.addView(hudview); 
     layout.addView(level1); 

     // Music 
     music = new Music(R.raw.music); 
     music.setLooping(true); 
     music.play(); 
    } 

} 
+1

ここにコードと.xmlを入れてください –

+0

ヌル例外を避けるために、単に削除する代わりに隠すことができます。 – David

+0

はい、私は同じ考えを持っていましたが、パフォーマンスを取り除く方が良いとは思いませんか? onDrawが更新されないように正しく隠すにはどうすればいいですか? – TimTheJim

答えて

0

わかりましたので、私はちょうど、次のでした: this.setVisibility(this.GONE)。

関連する問題