我在xml布局中创建了一个按钮,然后是onClick事件来处理按钮以启动新活动。出于某种原因,当我点击按钮时,应用程序崩溃了。有什么想法吗?
我已经使用这种方法在成功之前用按钮创建新活动。我不确定为什么这不起作用。
private Button view;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.stretchHow);
view = (Button)findViewById(R.id.perfect);
view.setOnClickListener(phase);
}
View.OnClickListener phase = new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(view.getId() == ((Button)v).getId()){
Intent i = new Intent(Stretch.this, Perform.class);
startActivity(i);
}
}
};
这是我得到的错误。
09-28 23:28:37.364: E/AndroidRuntime(275): FATAL EXCEPTION: main
09-28 23:28:37.364: E/AndroidRuntime(275): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.proj.fitness/org.proj.fitness.Perform}: android.content.res.Resources$NotFoundException: Resource ID #0x7f060073 type #0x12 is not valid
09-28 23:28:37.364: E/AndroidRuntime(275): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
09-28 23:28:37.364: E/AndroidRuntime(275): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
答案 0 :(得分:1)
尝试从gen Eclipse文件夹中删除R文件。然后它将被重新生成,希望问题得到解决。
答案 1 :(得分:0)
我认为意图是得到错误的上下文,因为Stretch.this不应该包含在onClickListener中。您可以尝试将其移动到您的活动中名为startPerform的另一个函数,因此它看起来像这样:
View.OnClickListener phase = new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(view.getId() == ((Button)v).getId()){
Intent i = new Intent(Stretch.this, Perform.class);
startActivity(i);
}
}
};
public void startPreform ()
{
startActivity(new Intent(this, Perform.class));
}
答案 2 :(得分:0)
这是您的错误的关键行:
android.content.res.Resources$NotFoundException: Resource ID #0x7f060073 type #0x12 is not valid
事件可能会触发,但目标不存在,或者处理程序期望它。继续检查你的方法,但也要确保没有合法的“未找到”情况。