2010-09-16 3 views
3

Попытка установить заголовок ContextMenu в соответствии с элементом, нажатым ListView. элемент управления ListView содержит список закладок -> Favicon + ОТМЕЧАЕТ TITLEНазвание ContextMenu -> get from clicked listView item

@Override 
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
     super.onCreateContextMenu(menu, v, menuInfo); 
     menu.add(0, EDIT_ID, 0, R.string.menu_edit); 
     menu.add(0, DELETE_ID, 0, R.string.menu_delete); 
     menu.add(0, SHARE_ID, 0, R.string.menu_share); 

     AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo; 
     View itemID = (info.targetView); 
     menu.setHeaderTitle("bla" + itemID); 
    } 

Когда я запускаю этот код он показывает [email protected] или что-то, и если я изменю itemID к String itemID = ((TextView) info.targetView).getText().toString(); я получаю силу близко от длинной мыши, даже если ошибок не являются показано в Eclipse или при запуске приложения.

Я также хочу, чтобы получить фавиконки таким же образом ...

Цените помощь!

ответ

5

info.targetView - это RelativeLayout, а не TextView. Добавьте атрибут android: id в свой заголовок TextView (например, android: id = "@ android: id/title"), а затем получите строковое значение:

String title = ((TextView) info.targetView.findViewById(android.R.id.title)).getText(); 
+0

РАБОТА! :) , но это CharSequence, а не String. Спасибо! –