java以编程方式在单击时创建微调器工作
我正在以编程方式创建微调器微调器显示完美下拉列表,但当我单击ant时,项不显示Toast消息,当我调试时,项不进入微调器单击方法,代码中有什么错误?微调器项目将显示,但单击事件不起作用有什么问题
public class MainActivity extends Activity {
Spinner spinner;
String[] strings = { "Power Options", "Power off", "Restart" };
String[] subs = { "", "Shut phone down", "Close all apps and restart phone" };
int arr_images[] = { R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
spinner = new Spinner(this);
spinner.setAdapter(new MyAdapter(this, R.layout.row, strings));
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> adapterView, View view,
int i, long l) {
// TODO Auto-generated method stub
if (i == 1) {
Toast.makeText(MainActivity.this, "PowerOff Perform",
Toast.LENGTH_SHORT).show();
}
if (i == 2) {
Toast.makeText(MainActivity.this, "Reboot Perform",
Toast.LENGTH_SHORT).show();
}
}
// If no option selected
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
public class MyAdapter extends ArrayAdapter<String> {
public MyAdapter(Context context, int textViewResourceId,
String[] objects) {
super(context, textViewResourceId, objects);
}
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
return getCustomView(position, convertView, parent);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return getCustomView(position, convertView, parent);
}
public View getCustomView(int position, View convertView,
ViewGroup parent) {
LayoutInflater inflater = getLayoutInflater();
View row = inflater.inflate(R.layout.row, parent, false);
TextView label = (TextView) row.findViewById(R.id.company);
label.setText(strings[position]);
TextView sub = (TextView) row.findViewById(R.id.sub);
sub.setText(subs[position]);
ImageView icon = (ImageView) row.findViewById(R.id.image);
icon.setImageResource(arr_images[position]);
return row;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_BACK == event.getKeyCode()) {
spinner.performClick();
return true;
}
return super.onKeyDown(keyCode, event);
}
# 1 楼答案
也许使用setOnItemClickListener而不是SetonimSelectedListener
尝试使用
而不是