2013-08-10 2 views
0

빈 gridview 또는 gridview 빈 곳에 longclick 처리 할 수 ​​있습니까? 아래에 표시된 코드를 사용하려고했습니다 :LongClick 빈 gridview 작동하지 않습니다

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    GridView gridview = (GridView) findViewById(R.id.gridView1); 

    gridview.setOnLongClickListener(new OnLongClickListener() { 

     @Override 
     public boolean onLongClick(View v) { 
      Toast.makeText(MainActivity.this, "does it works?", Toast.LENGTH_SHORT).show(); 
      return false; 
     } 
    }); 
} 

하지만 불행히도 작동하지 않습니다. 누군가 내게 말해 줄 수 있습니다. 어떻게 빈 gridview에서이 이벤트를 처리 할 수 ​​있습니까?

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_margin="-5dip" 
android:orientation="vertical" > 
<GridView 
     android:id="@+id/gridView1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:clickable="true" 
     android:longClickable="true" 
     android:layout_weight="1" 
     android:numColumns="3" > 
    </GridView> 

답변

0

의 GridView 어댑터에서 생성 된 뷰 구성 덕분에

나는 또한 나의 xml 파일을 첨부합니다. LongClickListener를 추가하려면 OnItemLongClickListener를 사용해야합니다. GridView 자체에서 LongClickListener를 사용하는 것이 유용하다고 생각하지 않습니다.

+0

나는 longclick 후에 "add a new element"창을 보여주고 싶습니다. 어떻게 당신 의견으로 그것을 풀 수 있습니까? –

+0

먼저 BaseAdapter를 살펴 보겠습니다. 웹에서 찾을 수있는 어댑터의 예제가 많이 있습니다. GirdView에 데이터가 있으면 GridView에 OnItemCLickListener와 OnItemLongClickListener를 추가 할 수 있습니다. – Milan

0

보기가 NULL이며, 여기서 XXXListener를 설정할 수 있습니까? 그렇게 할 수는 없습니다.

+0

무엇을 의미합니까? –

0

gridview에서 "OnTouchListener"을 청취하고 GestureDetector을 사용하여 onTouch 이벤트를 처리합니다. 마지막으로 "onLongPress"메소드에서 원하는 것을 수행하십시오.

또한 onLongPressonItemLongclick 사이의 충돌을 피하기 위해 클릭 한 항목인지 빈 여백 longPressed인지 확인할 수 있습니다.

int itemPosition = mGridView.pointToPosition((int)event.getX(), (int)event.getY());, itemPosition == -1 인 경우 빈 곳을 의미합니다.

관련 문제