从列表视图项中获取文本

时间:2012-01-30 07:39:09

标签: android android-listview contextmenu

我正在尝试获取列表视图项的文本。我正在制作上下文菜单的标题是项目的单击文本。

这是我的观点

<LinearLayout
            android:id="@+id/innerlayout"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:clickable="true"
            android:layout_weight="0.85"
            android:orientation="vertical" >
            <ListView 
                 android:id="@android:id/list"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 />
            </LinearLayout>

在oncreate中我设置了简单的光标适配器

SimpleCursorAdapter mysqliteadapter=new SimpleCursorAdapter(this,R.layout.thepatientrow,cursor,from,to);
            setListAdapter(mysqliteadapter);

在OnCreateContextMenu中,我想设置Heder title by Selected Item Text

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo){
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("");
        menu.add(Menu.NONE,CONTEXT_MENU_DELETE_ITEM,Menu.NONE,"Delete");
        menu.add(Menu.NONE,CONTEXT_MENU_UPDATE,Menu.NONE,"Update");
    }

请告诉您宝贵的建议。

我添加了一些图片以便于理解

I have listview like below(All data shown from db only. No xml).

我想显示上下文菜单标题,如下所示

And i want to show the context menu header, like below

2 个答案:

答案 0 :(得分:5)

onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo)

View v指的是列表中的所选项目。在R.layout.thepatientrow中,找到与您的布局的标题(例如R.id.header_text_view)相关的TextView的id,然后:

    menu.setHeaderTitle(((TextView)v.findViewById(R.id.header_text_view)).getText().toString());

答案 1 :(得分:0)

这是我必须使所选项目显示为标题。 我有一个带有imageview和2 textview的自定义列表视图,所以我只想找到我想通过其ID显示的textview。

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    if (v.getId() == R.id.listView1) {
        AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
        String titulo = (String) ((TextView) info.targetView
                .findViewById(R.id.list_guia)).getText();
        menu.setHeaderTitle(titulo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_list, menu);
    }
}