错误类型:java.lang.IllegalStateException: Could not find a method onStartSingleInstanceActivityClickLisenter(View) in the activity class com.xhsc.launchmodel.StandardActivity for onClick handler on view class android.widget.Button with id 'launmodel_satandard_btn'
1、这是采用xml布局代码中的onclick点击事件方法 android:onClick="onStartSingleInstanceActivityClickLisenter"
2、对应在我的 public class StandardActivity extends Activity 类中的
public void onStartSingleInstanceActivityClickLisenter(){
startActivity(new Intent(this, SingleInstanceActivtiy.class));
}
3、找出原因是因为少了参数(View v)public void onStartSingleInstanceActivityClickLisenter(View v){
startActivity(new Intent(this, SingleInstanceActivtiy.class));
}
所以在XML重定义按钮点击方法时,一定要在对应的类中的方法加上参数(View v)
以下是xml布局代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/launmodel_standard_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="StandardActivity" />
<Button
android:id="@+id/launmodel_satandard_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onStartSingleInstanceActivityClickLisenter"
android:text="确定" />
</LinearLayout>
这是对应Java类代码
package com.xhsc.launchmodel;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.xhsc.layout.relativelayout.R;
/**
*
* @author scxh
*standard模式是默认的启动模式,不用为<activity>配置android:launchMode属性即可,当然也可以指定值为standard。
*/
public class StandardActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.launchmodel_standard);
((TextView)findViewById(R.id.launmodel_standard_txt)).setText("StandardActivity current task id: "+">>>>>>>>"+this.getTaskId());
}
/*这里已遗漏参数/
public void onStartSingleInstanceActivityClickLisenter(View v){
startActivity(new Intent(this, SingleInstanceActivtiy.class));
}
}