java - 在哪里使用方法 onItemSelected

标签 java android listview android-arrayadapter

<分区>

我有两个类:fragmentMyListAdapter(数组适配器)。

我必须在哪个类中使用方法 onItemSelected

MyListAdapter 中不起作用......

这是我的代码:

数组适配器:

public  class MyListAdapter extends ArrayAdapter implements AdapterView.OnItemSelectedListener  {
    Spinner spinner;

    /*public MyListAdapter(Context context, int textViewResourceId) {
        super(context, textViewResourceId);
    }*/

    public MyListAdapter(Context context) {
        super(context, R.layout.single_listview_item);
    }





        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View row = convertView;
            System.out.println("ciao");

            spinner = (Spinner) convertView.findViewById(R.id.simpleSpinner);
            ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                    getContext(),
                    R.array.country_arrays,
                    android.R.layout.simple_spinner_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(adapter);
            spinner.setOnItemSelectedListener(this);

/*
            spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
*/
           /*     @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    //Spinner spinner = null;
                   // String selState = (String) ((Spinner) parent).getSelectedItem();

                    spinner.setSelection(position);
                    String selState = (String) ( parent).getSelectedItem();
                    Toast.makeText(
                            parent.getContext(),
                            "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onNothingSelected(AdapterView<?> parent) {

                }


            });*/



            return row;
        }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        spinner.setSelection(position);
        String selState = spinner.getSelectedItem().toString();
        System.out.println(selState);
        Toast.makeText(
                getContext(),
                "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show();
       /* Toast.makeText(parent.getContext(),
                "OnItemSelectedListener : " + parent.getItemAtPosition(position).toString(),
                Toast.LENGTH_SHORT).show();*/
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }


   /* @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        String selState = (String) spinner.getSelectedItem();
        System.out.println(selState);
        Toast.makeText(
                getContext(),
                "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }*/

    }

fragment :

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the custom_spinner_items for this fragment
        //super.onDestroy();

        SharedPreferences settings = getContext().getSharedPreferences("states", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = settings.edit();
        editor.clear();
        editor.commit();
        ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_list2, container, false);
        listView = (ListView) rootView.findViewById(R.id.listview);
        ListAdapter listAdapter = new MyListAdapter(getContext());
        listView.setAdapter(listAdapter);

enter image description here

最佳答案

为 Adapter 文件使用以下代码。

public  class MyListAdapter extends ArrayAdapter   {
Spinner spinner;

/*public MyListAdapter(Context context, int textViewResourceId) {
    super(context, textViewResourceId);
}*/

public MyListAdapter(Context context) {
    super(context, R.layout.single_listview_item);
}

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        System.out.println("ciao");

        spinner = (Spinner) convertView.findViewById(R.id.simpleSpinner);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                getContext(),
                R.array.country_arrays,
                android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

           @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                //Spinner spinner = null;
                String selState = spinner.getSelectedItem().toString();

           //     spinner.setSelection(position);
             //   String selState = (String) ( parent).getSelectedItem();
                Toast.makeText(
                        parent.getContext(),
                        "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }


        });



        return row;
    }

}

关于java - 在哪里使用方法 onItemSelected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38562753/

相关文章:

c# - Xamarin 表格 "...DisplayAlert does not exist in the current context."

java - 如何在需要称为协方差的父类(super class)型的方法中返回子类型?

java - 使用 JSP 处理文本文件的最简单方法是什么?

java - Jersey ClientResponse 获取复合实体列表

Java 静态字符串或静态 StringBuilder

java - 如何在 android 中压缩 Pixmap/使用 cim 文件?

java - LibGDX 自动缩放 GWT 窗口以监控分辨率

android - 无法在共享首选项中重命名文件

android - ListView 过滤后不更新

.net - 按字母顺序对 ListView 的 ListViewGroup 进行排序