在Java中使用Android文本视图时出错

时间:2012-02-17 12:11:50

标签: java android

我很确定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]

3 个答案:

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