从动作栏显示Spinner - Android

时间:2015-07-21 01:57:26

标签: android spinner

我认为我在理解如何从操作栏调用微调器方面缺少一个重要的部分,考虑到显然回调onItemSelectedonNothingSelected显然没有被调用。

有人可以提出一个想法吗?我已经阅读了很多其他问题,但没有找到解决方案。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);

    // Confifure the spinner for radius selection.
    setUpSpinner();
}

/**
 * Set up the spinner.
 * */
public void setUpSpinner(){

    // Instantiate the spinner.
    mSpinner = new Spinner(this);

    // Create an ArrayAdapter using the string array and a default spinner layout.
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.radius_config, android.R.layout.simple_spinner_item);

    // Specify the layout to use when the list of choices appears.
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // Apply the adapter to the spinner
    mSpinner.setAdapter(adapter);

    mSpinner.setOnItemSelectedListener(this);

}

/**
 * Called when the user pressed the menu button.
 * */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar.
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_activity_actions, menu);
    return super.onCreateOptionsMenu(menu);
}

/**
 * Called when the user clicks at an item on the menu.
 * */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items
    switch (item.getItemId()) {
        case R.id.radius_config:
            mSpinner.performClick();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

/**
 * Spinner callback, when an item on the spinner is clicked.
 * */
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    Log.d("map values", "Position: " + position);
}

/**
 * Spinner callback, when no iten is selected.
 * */
@Override
public void onNothingSelected(AdapterView<?> parent) {
    Log.d("map values", "Nothing");
}

0 个答案:

没有答案