OnClick侦听器实现无法正常工作

时间:2014-10-16 14:51:43

标签: java android onclicklistener

我通过实施onClick()类使用OnClickListener方法。使用下面的代码,但它不起作用!没有错误,但它不起作用。当我点击按钮时没有任何反应。有什么问题?

package com.behnam.PhoneCh.main;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class MainActivity extends Activity implements OnClickListener {

    EditText mainEt;
    TextView mainTv;
    Button   mainBtn;
    Button   mainBtn2;
    String   vaje;
    Javab    javab;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mainEt = (EditText) findViewById(R.id.editText1);
        mainTv = (TextView) findViewById(R.id.textView1);
        mainBtn = (Button) findViewById(R.id.button1);
        mainBtn2 = (Button) findViewById(R.id.button2);
        vaje = new String();
        javab = new Javab();
    }

    @Override
    public void onClick(View aaaaa) {
        switch (aaaaa.getId()) {

            case R.id.   Log.i("mylog", "start button1");
                vaje = mainEt.getText().toString();
                mainTv.setText(javab.startJ(vaje));
                break;
            case R.id.button2:             
                int c = 3;
                break;
        }
    }
}

4 个答案:

答案 0 :(得分:4)

您永远不会在Buttons

上设置您的听众
mainBtn.setOnClickListener(this);

您需要为要使用Buttons的所有onClick()添加此内容。

See this answer了解不同的处理方式onClick()

答案 1 :(得分:1)

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mainEt = (EditText) findViewById(R.id.editText1);
    mainTv = (TextView) findViewById(R.id.textView1);
    mainBtn = (Button) findViewById(R.id.button1);
    mainBtn2 = (Button) findViewById(R.id.button2);
    mainBtn.setOnClickListener(this);
    mainBtn2.setOnClickListener(this); 
    vaje = new String();
    javab = new Javab();

}


@Override
public void onClick(View aaaaa) {
    switch (aaaaa.getId()) {

        case R.id.button1;
            Log.i("mylog", "start button1");
            vaje = mainEt.getText().toString();
            mainTv.setText(javab.startJ(vaje));
            break;
        case R.id.button2:             
            int c = 3;
            break;
    }

}

使用上面的代码更改您的onCreateonClick

答案 2 :(得分:0)

请改为尝试:

Button btMain = (Button)findViewById(R.id.button1);
btMain.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            doStuff();
        }
});

这是开始了解听众如何工作的最佳方式。

答案 3 :(得分:0)

您需要将代码更改为:

public class MainActivity extends Activity implements OnClickListener {

EditText mainEt;
TextView mainTv;
Button   mainBtn;
Button   mainBtn2;
String   vaje;
Javab    javab;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mainEt = (EditText) findViewById(R.id.editText1);
    mainTv = (TextView) findViewById(R.id.textView1);
    mainBtn = (Button) findViewById(R.id.button1);
    mainBtn2 = (Button) findViewById(R.id.button2);
    mainBtn.setOnClickListener(this);
    mainBtn2 .setOnClickListener(this);
    vaje = new String();
    javab = new Javab();

}

// And then you can use
@Override
public void onClick(View view) {
    switch (view.getId()) {

        case R.id.button1:
            // Dome some stuff on click of button 1
            break;
        case R.id.button2:             
            // Dome some stuff on click of button 2
            break;
    }

 }
}