我的应用程序强制关闭onClick(goForIt)。我只是想设置一个内容View但是它会强制关闭eatch时间我按下我的按钮。还有可能只用一个活动制作应用程序吗? 有人可以告诉我为什么请:
package com.XanderApps.techquizz;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.CheckBox;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void goForIt(View view) {
setContentView(R.layout.question_one);
}
public void onCheckboxClicked(View view) {
boolean checked = ((CheckBox) view).isChecked();
switch(view.getId()) {
case R.id.checkbox_meat:
if (checked)
setContentView(R.layout.choice_done);
break;
case R.id.checkbox_cheese:
if (checked)
System.exit(0);
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
答案 0 :(得分:1)
在没有查看Logcat的情况下,我猜您在尝试访问按钮时会收到'NullPointerException'。
在尝试使用onClick()之前,请确保使用findViewById语法“实例化”按钮对象。
答案 1 :(得分:1)
由于您尚未在onCreateView()
的{{1}}内实例化 goForIt 。因此它抛出 NPE(空指针异常)。
从Activity
布局文件中获取 goForIt 的id
。
添加
XML
然后在 goForIt 上添加public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
goForit=(Button)findViewById(R.id.goForItId);
}
。