我很确定switch语句的这一部分出了问题,但我很难过,我只是需要有人来看看它。
switch(buttonId)
{
/* LOTS OF CASES HERE */
default:
case R.id.goButton:
TextView rootNum = (TextView)findViewById(R.id.otherView);
String rootDone = rootNum.getText().toString();
it = Integer.parseInt(rootDone);
break;
}
你能看到什么问题吗?
更新
很抱歉没有发布日志,我虽然问题很明显,但似乎并非如此。
这是两个logcat错误:
java.lang.IllegalStateException: Could not find a method RootMe(View) in the activity class root.me.RootMeActivity for onClick handler on view class android.widget.Button with id 'goButton'
Caused by: java.lang.NoSuchMethodException: RootMe [class android.view.View]
答案 0 :(得分:2)
问题是在xml中你提到了goButton的onclick事件来调用RootMe方法(android:onClick="RootMe")
,但是你没有在你的活动中定义那个方法。
从您的XML中删除android:onClick="RootMe"
并将onClickListener分配给活动中的该按钮
示例代码
<强> XML 强>
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button1"
android:id="@+id/btn1" />
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button2"
android:id="@+id/btn2" />
<强>源码强>
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class ExampleActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(this);
Button btn2 = (Button) findViewById(R.id.btn2);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int id = arg0.getId();
System.out.println("....clicked id..."+id);
System.out.println("....id of btn1.."+R.id.btn1);
System.out.println("....id of btn2.."+R.id.btn2);
switch(id){
case R.id.btn1:
Toast.makeText(ExampleActivity.this, "....."+1, Toast.LENGTH_SHORT).show();
break;
case R.id.btn2:
Toast.makeText(ExampleActivity.this, "....."+2, Toast.LENGTH_SHORT).show();
break;
}
}
}
答案 1 :(得分:1)
我自己解决了。
这是一个错字,我错误地输入了要在XML中调用onclick的方法的名称。
感谢您的帮助。
答案 2 :(得分:-1)
默认后写下关键字“break”。