我讨厌这样的错误。我得到一个空指针。我知道这意味着什么。我只是不明白我是如何得到它的,因为我知道它应该指向的项目确实存在。我正在创建一个将由opengl渲染器更新的文本视图。 textview提供了一个分数。我已经用XML创建了textview并给它一个&id;然后我在我的程序中引用它并通过渲染器更新它。全局创建TextView变量然后在onCreate()方法中初始化它们。然后我创建了一个设置文本的方法。在我的渲染器类中调用。
这是我的java代码
View r1;
TextView score3, score4;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//set app to full screen and keep screen on
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(Main.layout);//R.layout.gl_triallayout;
r1 = findViewById(Main.id);////R.id.gl_triallayout;
score3 = (TextView) findViewById(R.id.threeScore);
score4 = (TextView) findViewById(R.id.fourScore);
......
}
public int get3(int i){
score3.setText("Score" + String.valueOf(i));
((RelativeLayout) r1).bringChildToFront(findViewById(R.id.threeScore));
Log.i("i", String.valueOf(i));
return i;
}
XML代码
<TextView
android:id="@+id/threeScore"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Score"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:textSize="30dp"
android:textColor="#ffff00"/>
更新
主要课程
public void Trial(View v) {
layout = R.layout.gl_triallayout;
id = R.id.glTrialLayout;
gameType = 0;
Intent intent = new Intent(Main.this, OpenGLActivity.class);
startActivity(intent);
}
public void PlayGame(View v) {
layout = R.layout.gl_layout;
id = R.id.glLayout;
gameType = 1;
Intent intent = new Intent(Main.this, OpenGLActivity.class);
startActivity(intent);
}
我讨厌混乱stackoverflow的想法与相同的问题,所以如果答案非常简单,你可以在评论中给我。然后我可以删除它。
答案 0 :(得分:2)
你的
setContentView(Main.layout)
应该是
setContentView(R.layout.filename)
在上面的代码中,您应该根据您的需要更改布局文件名,例如R.layout.activity_main
。
同样适用于,
r1 = findViewById(Main.id);////R.id.gl_triallayout;
什么是r1
?
如果是按钮,则应为
r1 = (Button) findViewById(R.id.gl_triallayout);////R.id.gl_triallayout;
如果它是Editext,
r1 = (EditText) findViewById(R.id.gl_triallayout);////R.id.gl_triallayout
如果是TextView,
r1 = (TextView) findViewById(R.id.gl_triallayout);////R.id.gl_triallayout
另外,在XML
布局中,score4
和r1
的视图在哪里?
我认为您应该首先开始学习Android
的基础知识。