请教关于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
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);
}
});