首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

请问关于View的android:onClick的有关问题

2013-10-29 
请教关于View的android:onClick的问题在下面添加android:onClick总是出错AutoCompleteTextViewandroid:id

请教关于View的android:onClick的问题
在下面添加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();
    }


[解决办法]
把android:onClick="setSex"去掉,在activity的onCreate方法最后面加上

        ((AutoCompleteTextView)findViewById(R.id.txtsex)).setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                setSex(v);
            }
        });

热点排行