Android Spinner(DropDown):如何知道何时点击(展开)以及何时选择某个项目?

时间:2015-05-12 16:11:59

标签: android spinner

我有一个已经制作和工作的微调器,我需要做的是"知道"当用户点击微调器以选择一个项目(当它展开时)以及当用户点击微调器内的项目时(无论该项目是什么)。

我问这个是因为我需要在第一次点击时取消显示两个EditText框,然后在他/她选择一个项目后我将重新显示它们。

任何帮助表示赞赏! 谢谢

public class MyAdapter extends ArrayAdapter<String>
{
    Typeface font = Typeface.createFromAsset(getAssets(), "fonts/hatten.ttf");

    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 test=inflater.inflate(R.layout.row, parent, false);
        TextView label=(TextView)test.findViewById(R.id.company);
        label.setText(beverage[position]);
        label.setTypeface(font);

        return test;
    }
}

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式验证微调器状态:

angular.module('myapp', [])
  .controller('MainCtrl', ['$scope', '$http', '$filter',
    function($scope, $http, $filter) {

      var orderBy = $filter('orderBy');
      $scope.order = function(predicate) {
        $scope.reverse = !$scope.reverse;
        $scope.recentalerts = orderBy($scope.recentalerts, predicate, $scope.reverse);
      };

      $http.get('https://api.myjson.com/bins/4djr5').success(function(data) {
        $scope.recentalerts = data;
             $scope.order('time');
        $scope.total = $scope.recentalerts.length;
      });


      $scope.reverse = true;

    }
  ]);

答案 1 :(得分:1)

您需要使用“OnSpinnerEventsListener”。 有一个更详细的答案 https://stackoverflow.com/a/18636385/2391145