2012-12-12 2 views
1

각 행을 클릭하면 onclick 이벤트가 등록되지 않고 로그가 표시되지 않는 코드가 있습니다.맞춤 어댑터 onClick이 (가) 클릭을 등록하지 않습니다

어쩌면 어리석은 짓을하고있어 도움을 얻을 수 있습니다. 당신이 extendsListActivity을 보내고 경우

public void loadTable(){ 
    File dbfile = new File(Global.currentDBfull); 
    SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null); 

    mItemName.clear(); 
    mItemID.clear(); 
    adapter.notifyDataSetChanged(); 

    String SQLStatement = "select * from assets where areaobjectid = '" + StationObjectID + "' and CriticalAsset = 'Y'"; 
    Log.e("SQLSTATEMENT", SQLStatement); 

    String intCount = "0"; 

    Cursor c = db.rawQuery(SQLStatement, null); 
    if(c.getCount() != 0) { 

    c.moveToFirst(); 
    while(!c.isAfterLast()) { 

     mItemName.add(c.getString(c.getColumnIndex("Description"))); 
     mArrayClick.add(c.getString(c.getColumnIndex("StationObjectID"))); 
     mItemStatus.add(c.getString(c.getColumnIndex("ConditionID"))); 
     Log.e("MITEMSTATUS",c.getString(c.getColumnIndex("ConditionID"))); 


     c.moveToNext(); 

    } 

    rowCount = mItemName.size(); 

    listView = (ListView) findViewById(R.id.lvAssets); 
    adapter.notifyDataSetChanged(); 
    int[] colors = {0, 0xFFFF0000, 0}; 
    listView.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); 
    listView.setDividerHeight(1); 

    listView.setAdapter(adapter); 


    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 

      Log.e("TOMTEST", "Clicked"); 

      } 
     }); 


    } else { 

     Log.e("Assessment", "No Results"); 


    } 

    db.close(); 
} 

class CustomAdapter extends BaseAdapter 
{ 

    @Override 
    public int getCount() { 

     return mItemName.size(); 
    } 

    @Override 
    public Object getItem(int arg0) { 

     return null; 
    } 

    @Override 
    public long getItemId(int arg0) { 

     return 0; 
    } 

    @Override 
    public View getView(int arg0, View arg1, ViewGroup arg2) { 
     ImageButton btnAction; 

     LayoutInflater inf=getLayoutInflater(); 
     View v=inf.inflate(R.layout.iconrow, arg2,false); 
     ImageView ivStatus=(ImageView)v.findViewById(R.id.icon); 
     TextView tv=(TextView)v.findViewById(R.id.text); 
     btnAction = (ImageButton)v.findViewById(R.id.btnAction); 

     final String itemID = "Item ID"; 
     final String itemText = "Item Text"; 
     final String itemStage = "Item Strage"; 

     tv.setText(mItemName.get(arg0).toString()); 

     String currentStatus = mItemStatus.get(arg0).toString(); 
     if(Functions.isNullOrEmpty(mItemStatus.get(arg0).toString())){ 
      ivStatus.setImageResource(R.drawable.ico_not_verified); 
     } else if(mItemStatus.get(arg0).toString() == "99") { 
      ivStatus.setImageResource(R.drawable.ico_not_found); 
     } else { 
      ivStatus.setImageResource(R.drawable.ico_found); 
     } 


     return v; 
    } 


} 
+0

'loadTable()'함수가 여러 번 호출 되었습니까? –

+0

사실, onresume과 oncreate에 있습니다. – TMB87

+0

'listView.setOnItemClickListener'에서'Log.E ("TOMTEST", "Clicked"); 대신'Toast message'를 넣으십시오. –

답변

0

코드가 잘 작동합니다.

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 

       Log.v("TOMTEST", "Clicked"); 
       Toast.makeText(getApplicationContext(), "Clicked : "+position, Toast.LENGTH_LONG).show(); 

       } 
      }); 

올바른 위치의 토스트도 표시됩니다.

어떻게 든 로그에 메시지를 인쇄 할 수 없습니다.

희망이 있으면 도움이됩니다.

감사합니다.

+0

나는 축배 메시지와 함께 그것을 시도했다. nothings는 – TMB87

+0

을 표시한다. 그것은 나를 위해 잘 작동한다. 샘플 데모를 만들었고 매력적으로 작동합니다. –

+0

'ListView'가 yout 레이아웃 파일에서 어떻게 선언되는지 알고 싶습니까? –

0

당신은 OnListItemClick 방법을 override한다. 그것은 당신이 필요로하는 것입니다. 메모리를 얻기 위해 당신의 방법으로 ListViewView를 재활용하기 때문에, 메모리의 낭비를 피하기 위해

if(arg1==null){ 
    LayoutInflater inflater=getLayoutInflater(); 
    arg1=inflater.inflate(R.layout.row, parent, false); 
} 

: 나는 당신에게 제안을 줄 수있는 경우에도, 귀하의 getView의 패턴과 같아야합니다 사용률이 낮은

+0

내가 그렇게하면, 누락 된 항목을 구현해야한다고 말하고, – TMB87

+0

을 말하는 onitemclick을 다시 추가합니까? – Blackbelt

+0

Eclipse는 http://www.screenup.info/uploads/3958085.jpeg – TMB87

관련 문제