각 행을 클릭하면 onclick 이벤트가 등록되지 않고 로그가 표시되지 않는 코드가 있습니다.맞춤 어댑터 onClick이 (가) 클릭을 등록하지 않습니다
어쩌면 어리석은 짓을하고있어 도움을 얻을 수 있습니다. 당신이 extends
ListActivity
을 보내고 경우
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;
}
}
'loadTable()'함수가 여러 번 호출 되었습니까? –
사실, onresume과 oncreate에 있습니다. – TMB87
'listView.setOnItemClickListener'에서'Log.E ("TOMTEST", "Clicked"); 대신'Toast message'를 넣으십시오. –