实现OnClickListener

时间:2014-02-24 16:46:45

标签: java android onclicklistener

我正在阅读Android的教程,我有一个实现抽象类OnClickListener的类。问题是,在教程中它覆盖方法onClick时,这只有一个参数,但我的eclipse显示错误,因为onClick方法需要两个参数。

在我的错误代码下面,如何修复它?

public class MainActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final Button button = (Button) findViewById(R.id.form_button);
    button.setOnClickListener((android.view.View.OnClickListener) this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.form_button:
        final EditText edit_name = (EditText) findViewById(R.id.edit_name);
        final EditText edit_lastname = (EditText) findViewById(R.id.edit_lastname);
        Bundle bundle = new Bundle();
        bundle.putString("name", edit_name.getText().toString());
        bundle.putString("lastname", edit_lastname.getText().toString());
        Intent form_intent = new Intent(getApplicationContext(), Form.class);
        form_intent.putExtras(bundle);
        startActivity(form_intent);
        break;
    }

}

}

3 个答案:

答案 0 :(得分:5)

您需要导入

 import android.view.View.OnClickListener

而不是

 import android.content.DialogInterface.OnClickListener

我猜你输错了DialogInterface.OnClickListener

onClick(DialogInterface dialog, int which)需要2个参数

但是View.OnClickListener的onClick只需要1个参数,即查看

http://developer.android.com/reference/android/view/View.OnClickListener.html

答案 1 :(得分:2)

您可能在DialogInterface上错误地导入了onClickListener。您必须导入android.view.onClickListener,因为Button是View的子类。

有关详细信息,请查看此link

答案 2 :(得分:0)

或执行以下操作

implements View.OnClickListener