我有一個GridView,其中我爲每個項目添加了一個LinearLayout。 LinearLayout按垂直順序包含圖像和文本視圖。需要在GridView上點擊兩次項目
當我點擊該項目時,第一次在項目中看到藍色背景並且第二次點擊時,GridView的onItemclick偵聽器觸發。我想知道爲什麼它不是在第一次點擊發射。
網格視圖定製適配器的getView方法是:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LinearLayout ll = new LinearLayout(ctx);
ll.setOrientation(LinearLayout.VERTICAL);
ImageView imgView = new ImageView(ctx);
imgView.setImageResource(imgIds[position]);
imgView.setFocusable(false);
imgView.setFocusableInTouchMode(false);
TextView tv = new TextView(ctx);
tv.setText(names[position]);
tv.setGravity(Gravity.CENTER);
ll.addView(imgView);
ll.addView(tv);
ll.setFocusable(false);
ll.setFocusableInTouchMode(false);
ll.setClickable(false);
return ll;
}
這個網格上項目點擊監聽器在MainActivity是:
GridView gv = (GridView) findViewById(R.id.gv);
gv.setAdapter(new GridAdapter(MainActivity.this));
gv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
popupMenu = new PopupMenu(MainActivity.this, v);
popupMenu.getMenu().add(Menu.NONE, ONE, Menu.NONE, "Play");
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popupMenu.show();
}
});
}
});
不知道如何可以顯示在單一點擊彈出菜單僅。