从使用ListView填充的String Array读取值

时间:2015-08-24 06:00:01

标签: java android listview

我有一个ListView填充字符串数组中的引号列表,但是onClick我要求将选定的<item>读取到String。这是我使用的代码:

 ListView sample = (ListView)findViewById(R.id.Samplelist);

    String[] backup = getResources().getStringArray(R.array.months);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, backup);

    sample.setOnItemClickListener(new AdapterView.OnItemClickListener(){
        @Override
        public void onItemClick(AdapterView<?> parent, final View view,
                                int position, long id) {
            final String item = (String) parent.getItemAtPosition(position);
            view.animate().setDuration(2000).alpha(0)
                    .withEndAction(new Runnable() {
                        @Override
                        public final void run()
                        {

                            String readItem;
                            finish();

                        }
                    });
        }


    sample.setAdapter(adapter);


}

此处sample.setAdapter(adapter)似乎是一个错误,并用红色加下划线。

有没有办法让这件事正确完成?任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

如果您查看simple_list_item_1的布局,那么您可以找到textview的ID为text1

您可以将OnItemClickListener定义为listview,如下所示:

   listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String selectedItem = ((TextView) view.findViewById(R.id.text1)).getText().toString();
            }
        });

修改

您也可以尝试

String selectedItem = (String)parent.getItemAtPosition(position);

而不是

String selectedItem = ((TextView) view.findViewById(R.id.text1)).getText().toString();

希望它有所帮助!

答案 1 :(得分:0)

您可能需要解析View

OnItemClickListener的文字
listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String selectedItemText = ((TextView)view).getText().toString();
        }
    });