我知道我需要在长时间点击的情况下在上下文菜单中找到一行:
AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
int position = info.position;
onCreateContextMenu
中的
我如何在这里实施?我似乎只是在这个设置中抓住了第一个。
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.comments_context, menu);
menu.setHeaderTitle("Available Actions");
MenuItem Edit = menu.findItem(R.id.editComment);
MenuItem Delete = menu.findItem(R.id.deleteComment);
ReviewUser = ((TextView) v
.findViewById(R.id.labelReviewCommentUser)).getText()
.toString();
ReviewComment = ((TextView) v
.findViewById(R.id.labelReviewComment)).getText()
.toString();
}
我希望根据用户点击的列表行选择ReviewUser
和ReviewComment
。
答案 0 :(得分:1)
我如何在这里实施?我似乎只抓住了第一个 这个设置中有两个。
v
表示为其构建上下文菜单的View
,在本例中为ListView
,而不是您执行操作的行视图。你可能想要这样的东西:
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.comments_context, menu);
menu.setHeaderTitle("Available Actions");
MenuItem Edit = menu.findItem(R.id.editComment);
MenuItem Delete = menu.findItem(R.id.deleteComment);
AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
int position = info.position;
ListView lv = (ListView) v;
int firstVisible = lv.getFirstVisiblePosition();
View rowView = lv.getChildAt(position - firstVisible);
ReviewUser = ((TextView) rowView.findViewById(R.id.labelReviewCommentUser))
.getText().toString();
ReviewComment = ((TextView) rowView.findViewById(R.id.labelReviewComment))
.getText().toString();
}