如何为Android中的活动分配按钮?

时间:2011-07-23 20:31:13

标签: java android eclipse

我对Android和Java非常陌生,但这个网站直到现在一直帮助我,所以非常感谢大家!

我正在构建一个有两个选项卡的应用程序,在一个选项卡中我创建了一些按钮,在相应的活动中我有一个OnClickListener。当我运行应用程序时,它强制关闭,我收到错误:

ERROR/AndroidRuntime(25971): java.lang.IllegalStateException: Could not find a method myClickHandler(View) in the activity class com.test.rate.MainActivity for onClick handler on view class android.widget.Button with id 'CalculateButton'

这可能很简单但有帮助!

好的,我应该添加一些代码:

活动:

public class MetricActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.metriclayout);


    final Button button = (Button) findViewById(R.id.CalculateButton);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Perform action on click
        }
    });

标签布局中的按钮:

<Button android:layout_height="wrap_content" android:text="Calculate" android:layout_width="wrap_content" android:id="@+id/CalculateButton" android:onClick="myClickHandler" android:layout_gravity="center"></Button>

4 个答案:

答案 0 :(得分:1)

您是否在xml文件中为布局定义了onclick方法,或者您是否在激活中设置了OnClickListener?或两者兼而有之?

http://developer.android.com/reference/android/view/View.html#attr_android:onClick

好像你可能已经为myClickHandler定义了onclick xml属性,但你从未实现过该方法。

答案 1 :(得分:0)

我猜你可能在你的xml文件中设置了android:clickable =“true”,然后你没有在你的活动中定义一个onClickListener。在您的活动的onCreate()方法中,为您的按钮定义onClickListener:

Button btn = (Button) findViewById(R.id.yourbuttonid);
btn.setOnClickListener(new OnClickListener(){

  public void onClick(View v) {
      //do whatever when your button is clicked
  }

});

答案 2 :(得分:0)

你不需要:

android:onClick="myClickHandler"

清除它,其余的都没问题。

答案 3 :(得分:0)

  1. 从XML中删除“onClickHandler”内容
  2. 在onClick方法上,使用您尝试显示的活动创建新的Intent
  3. 将活动添加到您的清单
  4. 在这里查看问题和答案:Using Intent in an Android application to show another activity。它们分别针对第2点和第3点。