2012-02-06 27 views
0

我已经创建了一个列表。我需要点击列表项目上的文字。然后,该文本需要在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(); 
     } 

     }); 

    } 
+0

如果粘贴从您的logcat异常这将有助于。 – 2012-02-06 06:26:08

+0

只需确认一下,你确实实现了你的调用'setTag()'而不是'setText()'吧? – st0le 2012-02-06 06:26:19

+0

使用String v = list.getItemAtPosition(position).toString(); – Dugs 2012-02-06 06:28:52

回答

2

用我的建议代码替换下面的3行代码onItemClick方法。

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); 
0

你得到了串V后面,你需要把下面一行:

selectedTask.setText(v); 

也没有必要把list.setOnKeyListener(this);因为你需要监听被点击的项目。

+0

它的工作,但我不得不改变上面那一行。 谢谢 – sam 2012-02-06 06:41:30

相关问题