我有一个短语手册,能够将样本保存到SD。我使用Gridview设置,并为按钮适配器提供以下代码:
public View getView(int position, View convertView, ViewGroup parent) {
try {
final Sample sample = board.getSamples().get(position);
if (sample != null) {
Button button = new Button(context);
button.setText(sample.getName());
button.setTextColor(Color.WHITE);
button.setTextSize(12);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
context.play(sample);
}
});
// TODO Implement this correctly.
button.setOnLongClickListener(new OnLongClickListener() {
public boolean onLongClick(View v) {
return context.saveToSD(sample);
}
});
return button;
}
} catch (IndexOutOfBoundsException e) {
Log.e(getClass().getCanonicalName(), "No sample at position "
+ position);
}
return null;
}
我希望在长按上集成一个上下文菜单,以提供保存样本的位置选项。我似乎无法在此方法中注册上下文菜单的按钮(即registerForContextMenu(按钮),因为它给了我错误。
我在这里有点难过,任何指针都会有很大的帮助。
由于
答案 0 :(得分:0)
我认为这是一篇旧帖子,但我今天遇到了它,因为我正在寻找同一主题的答案。就像这里的问题一样,我有一个项目网格,并希望长按一下上下文菜单。
我没有使用contextmenu,而是使用AlertDialog。
gridview.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id)
{
showOptionsMenu(position);
return true;
}
});
public void showOptionsMenu(int position)
{
new AlertDialog.Builder(this)
.setTitle("test").setCancelable(true).setItems(R.array.myOptions,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialoginterface, int i) {
//take actions here according to what the user has selected
}
}
)
.show();
}
希望这会有所帮助。