在下面添加android:onClick总是出错
<AutoCompleteTextView
                android:id="@+id/txtsex"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ems="10"
                android:text=""
                android:onClick="setSex" />
错误信息:
java.lang.NullPointerException   
at android.widget.AutoCompleteTextView$PassThroughClickListener.access$302   
at android.widget.AutoCompleteTextView.setOnClickListener   
at android.view.View.<init>   
at android.widget.TextView.<init>   
at android.widget.EditText.<init>   
at android.widget.AutoCompleteTextView.<init>   
at android.widget.AutoCompleteTextView.<init>   
at java.lang.reflect.Constructor.newInstance   
at android.view.LayoutInflater.createView   
at android.view.LayoutInflater.onCreateView   
at android.view.LayoutInflater.createViewFromTag   
at android.view.LayoutInflater.rInflate_Original   
at android.view.LayoutInflater_Delegate.rInflate   
at android.view.LayoutInflater.rInflate   
at android.view.LayoutInflater.rInflate_Original   
at android.view.LayoutInflater_Delegate.rInflate   
at android.view.LayoutInflater.rInflate   
at android.view.LayoutInflater.rInflate_Original   
at android.view.LayoutInflater_Delegate.rInflate   
at android.view.LayoutInflater.rInflate   
at android.view.LayoutInflater.inflate   
at android.view.LayoutInflater.inflate 对应的java页面的函数
public void setSex(View view)
    {
        final EditText txtsex = (EditText)this.findViewById(R.id.txtsex);
        String[] strSex = getResources().getStringArray(R.array.sex);
        AlertDialog.Builder builder;
        builder = new AlertDialog.Builder(this);
        builder.setTitle("选择性别");
        builder.setCancelable(false);
        builder.setSingleChoiceItems(strSex, 0, new DialogInterface.OnClickListener() {            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                index = which;
            }
        });
        builder.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                txtsex.setText(getResources().getStringArray(R.array.sex)[index]);
            }
        });
        builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                txtsex.setText("");
            }
        });
        builder.create().show();
    }

解决方案 »

  1.   

    xml定义android:onClick就会报这个错,代码里注册就不会,是有点奇怪。
    你在代码里注册吧。
      

  2.   

    把android:onClick="setSex"去掉,在activity的onCreate方法最后面加上        ((AutoCompleteTextView)findViewById(R.id.txtsex)).setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    setSex(v);
                }
            });
      

  3.   

    貌似在xml中定义android:onClick只能用于Button类(包括其子类),否则会报错,楼主最好是在代码中注册onClick事件,3楼正解!
      

  4.   

    button和其他控件还是有点区别的,我之前在GridView中在每个子View添加Button,点击事件竟然木有用
      

  5.   

    恩,可以了。再问个问题,你用过Android-studio吗,为什么编译的程序里面汉字会显示乱码啊
      

  6.   

    没用过,我一直用eclipse啊!!!终于好了,全是英文,不给力啊(虽然有汉化包,但我不用,锻炼自己)推荐你用这个软件,Google自己的,比Eclipse流畅
      

  7.   

    没用过,谷歌推出这个IDE没多久,据一些人反馈还有些bug,有待完善。我是从eclipse转到Intellij IDEA的,感觉比Eclipse强大,好用多了,stdio基于这个的,并且idea支持中文编码,而且它的智能提示、集成版本控制非常强大,推荐楼主使用!