2012-03-18 12 views
0

私がしたいこと ListViewにはいくつかの項目があります。アイテムを長押しすると、いくつかのオプションがポップアップするコンテキストメニューが表示されます。これらのオプションの上には、 "タスクを共有"があります。ユーザーが「タスクを共有」を選択すると、アイテムのタイトル/テキストを取得したいと思って、長押しして取得してメソッドに渡しました。私はこれまで 私はコンテキストメニューには、以下の方法でショーを使って呼び出されたリストビュー内のアイテムのIDと位置を取得するために管理している行うことができた何ListViewの項目にテキストを設定するにはどうすればいいですか

。私は私が今のContextMenuが呼び出された項目のテキスト/タイトルを取得する方法を見つけ出すことはできません で助けを必要と何

@Override 
public boolean onContextItemSelected(MenuItem item) 
{ 
    switch (item.getItemId()) 
    { 
    case R.id.menuShare : 
     //Identify list item on which editing needs to be performed 
     AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 

     //METHOD TO SHARE TASK NEEDS TO GO HERE 
     shareTask(); 
     return true; 
    } 
    return super.onContextItemSelected(item); 
} 

。次に、この文字列をshareTask()関数に渡して、セレクタを起動します。私が渡したタイトルは、たとえばメールのタイトルとして使用されます。

ありがとうございます!

答えて

0

あなたは、リスト項目のテキストを取得するには、次のコードを使用する必要があります。

AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 
//list item's text on which long-pressed is performed 
String text = yourListView.getAdapter().getItem(info.position).toString(); 
+0

おかげWaqas。私はこれを実装しようとしたときに問題を見つけました。リストビューを作成したとき、私はそれに "@ + id/android:list"というid属性を与えました。しかし、あなたが "yourListView"で "R.id.list"で指定したコードを置き換えると、この項目は存在しないように見えます。私は間違って何をしていますか? – Vim

+0

あなたのアクティビティのタイプが** ListActivity **のようです。だから私はあなたのListViewを参照するために 'this.getAdapter()'を単に使うことができると信じています – waqaslam

関連する問題