Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按钮的OnClick侦听器不工作_Android_Button - Fatal编程技术网

Android 按钮的OnClick侦听器不工作

Android 按钮的OnClick侦听器不工作,android,button,Android,Button,我只是想通过按钮和变量来初始化变量。 但是当我尝试初始化时,如果我为按钮设置OnClickListeners,应用程序会意外停止。 如果我对设置OnClickListener的行进行注释,则应用程序工作正常。因此,我确信问题肯定出在OnClickListener上 类名是Data.java import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.Vie

我只是想通过按钮和变量来初始化变量。 但是当我尝试初始化时,如果我为按钮设置OnClickListeners,应用程序会意外停止。 如果我对设置OnClickListener的行进行注释,则应用程序工作正常。因此,我确信问题肯定出在OnClickListener上 类名是Data.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Data extends Activity implements OnClickListener {

    Button start, startFor;
    EditText sendET;
    TextView gotAnswer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        initialise();
        start.setOnClickListener(this);
        **startFor.setOnClickListener(this);
        setContentView(R.layout.get);**
    }

    private void initialise() {
        // TODO Auto-generated method stub
        start = (Button) findViewById(R.id.bSA);
        startFor = (Button) findViewById(R.id.bSAFR);
        sen

    dET = (EditText) findViewById(R.id.etSend);
            gotAnswer = (TextView) findViewById(R.id.tvGot);


        }

        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {
            case (R.id.bSA):
                break;
            case (R.id.bSAFR):
                break;

            }

        }

    }
相应的清单添加活动为

<activity
            android:name=".Data"
            android:label="@string/app_name" >
        </activity>


设置OnClickListener时有什么错误。。。我正在做的事情是否有问题?

您尚未为活动指定视图。在调用
super.onCreate(..)
之后,调用
setContentView(R.id.mylayoutid)
,其中mylayoutid是包含按钮的xml布局的名称。

您尚未为活动指定视图。在调用
super.onCreate(..)
之后,调用
setContentView(R.id.mylayoutid)
,其中mylayoutid是包含按钮的xml布局的名称。

在初始化方法之后设置内容视图。您需要在尝试访问UI组件之前执行此操作

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.get);            

        initialise();
        start.setOnClickListener(this);
   }

您正在初始化方法后设置内容视图。您需要在尝试访问UI组件之前执行此操作

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.get);            

        initialise();
        start.setOnClickListener(this);
   }

Espiandev是对的,
setContentView(R.id.mylayoutid)
必须在超级调用之后出现

此外,在布局xml中执行此操作可能更容易:

<Button android:id="@+id/bSA"
        ...
        android:onClick="onClick"/>
<Button android:id="@+id/bSAFR"
        ...
        android:onClick="onClick"/>


您甚至不必以这种方式实现View.OnClickListener,也不必调用setOnClickListener—当布局XML膨胀时,将自动分配单击侦听器。

Espiandev是正确的,
setContentView(R.id.mylayoutid)
必须在超级调用之后

此外,在布局xml中执行此操作可能更容易:

<Button android:id="@+id/bSA"
        ...
        android:onClick="onClick"/>
<Button android:id="@+id/bSAFR"
        ...
        android:onClick="onClick"/>


您甚至不必以这种方式实现View.OnClickListener,也不必调用setOnClickListener—当布局XML膨胀时,将自动分配单击侦听器。

case(R.id.bSA):这行吗?我将使用案例R.id.bSA:@Padma Kumar:这有什么区别吗。。是吗?凯斯(R.id.bSA):这样行吗?我将使用案例R.id.bSA:@Padma Kumar:这有什么区别吗。。是吗?是的我试过了。。但这仍然不起作用。。。问题再次出现在OnClickListener中,这是修改后的代码。。。初始化();setContentView(R.layout.get);start.setOnClickListener(this);启动.setOnClickListener(此)。。。。。。。。我只是想告诉大家,我正在使用ECLIPSE并为API级别7构建,交换
initialise()
setContentView()
的顺序。您需要先设置内容视图,然后再尝试访问视图(您正在
initialise()
中执行此操作),没有问题。别忘了把问题设为已回答(左边的勾号)是的,我试过了。。但这仍然不起作用。。。问题再次出现在OnClickListener中,这是修改后的代码。。。初始化();setContentView(R.layout.get);start.setOnClickListener(this);启动.setOnClickListener(此)。。。。。。。。我只是想告诉大家,我正在使用ECLIPSE并为API级别7构建,交换
initialise()
setContentView()
的顺序。您需要先设置内容视图,然后再尝试访问视图(您正在
initialise()
中执行此操作),没有问题。别忘了将问题设置为已回答(左边的勾号)