-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();
}
}
ここにコードと.xmlを入れてください –
ヌル例外を避けるために、単に削除する代わりに隠すことができます。 – David
はい、私は同じ考えを持っていましたが、パフォーマンスを取り除く方が良いとは思いませんか? onDrawが更新されないように正しく隠すにはどうすればいいですか? – TimTheJim