OnClick事件未启动新活动

时间:2012-09-28 23:44:55

标签: android android-layout android-intent android-button

我在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)

3 个答案:

答案 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

事件可能会触发,但目标不存在,或者处理程序期望它。继续检查你的方法,但也要确保没有合法的“未找到”情况。