2014-07-11 3 views
0

사용자가 gridview에서 항목을 클릭했지만 클릭이 등록되지 않았을 때 팝업 메뉴를 표시하려고합니다. 다음은 가장 간단한 형태의 내 코드가 (좀 더 블록을 추가) :Gridview onItemClickListener가 등록되지 않았습니다.

android:focusable="false" 
android:focusableInTouchMode="false" 
: 나뿐만 아니라 내 main_activity.xml이를 게시했다 스택 오버 플로우 여기 게시물의 몇 가지를 읽어
GridView gridView = (GridView) findViewById(R.id.grid_view); 


    gridView.setAdapter(new GridViewAdapter(this)); 

    gridView.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View v, 
       int position, long id) { 
       PopupMenu popupMenu = new PopupMenu(MainActivity.this, v); 
       popupMenu.setOnMenuItemClickListener(MainActivity.this); 
       popupMenu.inflate(R.menu.popup_menu); 
       popupMenu.show(); 

     } 
      }); 

클릭이 아직 등록되지 않았습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있을까요? 감사!

+0

이 코드는 작동합니다. 다음과 같은 것을 시도 했습니까? public void onItemClick (...) {Log.d ("tag", "Click success"); – Marius

+0

어댑터 빌드 방법을 보여줍니다. –

+0

어댑터를 만드는 데 문제가있는 것 같습니다. 또한 팝업을 제거하고 어댑터를 변경 한 후 onclick가 작동하는지 확인하려면 log 또는 Toast를 사용하십시오. –

답변

0

이 시도 :

 gridView.setOnItemClickListener(new OnItemClickListener() { 

       @Override 
       public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 


        else if(position == 0)//Here 0 is theFirst item index in gridview. 
        { 
         // Starting new intent FEES 

         final CharSequence[] items={"Standard Wise Fees","Paid Fees"}; 


         AlertDialog.Builder builder3=new AlertDialog.Builder(Home_Student.this); 
         TextView myMsg = new TextView(Home_Student.this); 
          myMsg.setText("Fees Details"); 
          myMsg.setTextSize(20); myMsg.setHeight(100); 
          myMsg.setHeight(100); 

          myMsg.setTextColor(Color.BLACK); 
          myMsg.setGravity(Gravity.CENTER); 


          //set custom title 
          builder3.setCustomTitle(myMsg); 


        builder3.setPositiveButton("OK", null); 
        builder3.setItems(items, new DialogInterface.OnClickListener() { 

         @Override 

         public void onClick(DialogInterface dialog, int which) { 

        if(items[which].equals("Standard Wise Fees")) 
         { 
          Intent i = new Intent(Home_Student.this, Fees_Standard.class);// 

          startActivity(i); 
         } 
         else 
         { 
          Intent i = new Intent(Home_Student.this, Fees_Student.class);// 

          startActivity(i); 
         } 
        } 

        }); 

         builder3.show(); 

        } 






       } 
      }); 

그것은 당신을 도울 수 있습니다 희망!

0
BaseAdapter baseObj = /* Object class for Grid View Setting */; 
gridView = (GridView) findViewById(R.id.customerListGrid); 
gridView.setAdapter(baseObj); 
gridView.setOnItemClickListener(new OnItemClickListener() 
{ 
    public void onItemClick(AdapterView<?> parent, View v, 
      int position, long id) 
    { 
     Toast.makeText(getApplicationContext(), "Clicking for \n"  +position, Toast.LENGTH_SHORT).show(); 
     } 
});     
+0

안녕하세요! 이미 위의 코드 블록에 추가 한 어댑터를 사용하고 있지만 아직 작동하지 않습니다. (내 어댑터는이 튜토리얼의 어댑터와 유사하므로 여기에 링크 된 일부 사용자가 있으므로 http : //www.androidhive .info/2012/02/android-gridview-layout-tutorial/ –

+0

@LevLeetian : 완벽하네요. 어떻게 사용합니까?하지만 토스트 나 로그를 사용하여 onclick이 호출되지 않는지 또는 팝업 메뉴인지 확인하십시오 개막하지 마라. –

관련 문제