有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    也许使用setOnItemClickListener而不是SetonimSelectedListener

    尝试使用

    spinner.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(final AdapterView<?> arg0, final View arg1, final int arg2, final long arg3) {
            }
        });
    

    而不是

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
       {
    
            public void onItemSelected(AdapterView<?> adapterView, View view,
                    int i, long l) {...