2012-02-06 40 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

相關問題