2012-02-06 15 views
0

私はリストを作成しました。そして、それがクリックされると、リストアイテムのテキストを取得する必要があります。そのテキストをTextViewに設定する必要があります。私のコードは以下の通りです。実行すると強制停止します。いくつか考えてください。リストの選択項目からテキストを取得し、そのテキストをTextViewに設定する方法は?

selectedTask.setText(v); 

また、あなたは項目がクリックさをリッスンする必要があるためlist.setOnKeyListener(this);を置く必要はありません:あなたは、文字列vを持っている後

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から例外を貼り付けた場合、それが役立つだろう。 –

+0

'setText()'の代わりに 'setTag()'を呼んでいるのを確認してください。 – st0le

+0

文字列を使用v = list.getItemAtPosition(位置).toString(); – Dugs

答えて

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

は、次の行を配置する必要があります。

+0

それは働いたが、私はそれを上回る行を変更しなければならなかった。 ありがとう – sam

関連する問題