如何从列表中的选定项目获取文本并在TextView中设置该文本?

时间:2012-02-06 06:21:32

标签: android listview textview

我创建了一个列表。当点击它时,我需要在列表项上获取文本。然后需要在TextView中设置该文本。以下是我的代码,当我运行它时,我得到一个强制停止。请提出一些想法。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    txtTask = (EditText)findViewById(R.id.txtTask);
    btnAdd = (Button)findViewById(R.id.btnAddTask);
    selectedTask = (TextView)findViewById(R.id.textViewTask);

    list = getListView();
    list.setTextFilterEnabled(true);

    btnAdd.setOnClickListener(this);
    list.setOnKeyListener(this);


    toDoItems = new ArrayList<String>();
    oo = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,   toDoItems);
    list.setAdapter(oo);
    list.setOnItemClickListener(new OnItemClickListener(){
        @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
                long id3) {     
        int tmp = list.getSelectedItemPosition();
        String v= toDoItems.get(tmp).toString();
        selectedTask.setTag(v);
        flippy.showNext();
        }

        });

    }

2 个答案:

答案 0 :(得分:2)

使用我建议的代码在 onItemClick 方法中替换以下3行代码。

int tmp = list.getSelectedItemPosition();
String v= toDoItems.get(tmp).toString();
selectedTask.setTag(v);

建议代码

String v= toDoItems[position]; // or
String v = list.getItemAtPosition(position).toString();
selectedTask.setText(v);

答案 1 :(得分:0)

获得字符串v后,需要输入以下行:

selectedTask.setText(v);

此外,无需放置list.setOnKeyListener(this);,因为您需要收听被点击的项目。