title: onItemClickListener is not working, not getting event when i click
body: <p>I am using custom Adapter for the <code>ListView</code>, setting row every time in the <code>ListView</code>.
  in row i want to have two view clickable, i want the click event from both.
  setting <code>OnItemClickListener</code> to the <code>ListView</code>, but not working,<br>
  i want the functionality exactly same as callLog list view (default in the phone).
  please solve my problem, if you want i can paste my code here too.  </p>
  
  <pre><code>package com.example.testsmspopup;
  </code></pre>
  
  <p>public class CallLogActivity extends Activity {</p>
  
  <pre><code>private ArrayList&lt;CallDetail&gt; callDetailArrayList;
  private ListView callDetailListView = null;
  private CallDetailListAdapter callDetailListAdapter;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      callDetailListView = (ListView) findViewById(R.id.contactListView);
      callDetailListView.setOnItemClickListener(new OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1, int arg2, long arg3) {
              Log.i("MyTag","calling ...........................");
              Toast.makeText(getApplicationContext(), "onItemClick is calling", Toast.LENGTH_SHORT);
          }
      });
  }
  
  @Override
  protected void onResume() {
      // TODO Auto-generated method stub
      super.onResume();
      callDetailArrayList = DB.getInstance(this).getAllCallDetails();
      callDetailListAdapter = new CallDetailListAdapter();
      callDetailListView.setAdapter(callDetailListAdapter);
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.call_detail_activity, menu);
      return true;
  }
  
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
      super.onOptionsItemSelected(item);
      if (item.getItemId() == R.id.menu_clear_all) {
          DB.getInstance(this).deleteAllCallDetails();
      }
      return true;
  }
  
  private class CallDetailListAdapter extends ArrayAdapter&lt;CallDetail&gt; {
      public CallDetailListAdapter() {
          super(CallLogActivity.this, R.layout.call_log_row, callDetailArrayList);
      }
  
      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
          View row = convertView;
          CallDetailHolder holder = null;
          if (row == null) {
              LayoutInflater inflater = getLayoutInflater();
              row = inflater.inflate(R.layout.call_log_row, parent, false);
              holder = new CallDetailHolder(row);
              row.setTag(holder);
          } else {
              holder = (CallDetailHolder) row.getTag();
          }
          holder.populateFrom(callDetailArrayList.get(position));
          return (row);
      }
  }
  
  private class CallDetailHolder {
      private TextView nameTextView = null;
      private TextView numTextView = null;
      private TextView timeTextView = null;
      private ImageView typeImageView = null;
  
      public CallDetailHolder(View row) {
          nameTextView = (TextView) row.findViewById(R.id.callDetailName);
          numTextView = (TextView) row.findViewById(R.id.callDetailNumber);
          timeTextView = (TextView) row.findViewById(R.id.callDetailTime);
          typeImageView = (ImageView) row.findViewById(R.id.callDetailType);
  </code></pre>
  
  <p>//          row.findViewById(R.id.callDetail).setOnClickListener(CallLogActivity.this);
  //          row.findViewById(R.id.callBackBtn).setOnClickListener(CallLogActivity.this);
          }</p>
  
  <pre><code>    public void populateFrom(CallDetail detail) {
          String fName = DB.getInstance(CallLogActivity.this).getContact(detail.getCallNumber()).getFirstName();
          String lName = DB.getInstance(CallLogActivity.this).getContact(detail.getCallNumber()).getLastName();
          nameTextView.setText(fName + " " + lName);
          numTextView.setText(detail.getCallNumber());
          timeTextView.setText(AppUtility.parseCallTime(detail.getCallTime()));
          switch (detail.getCallType()) {
          case AppConstants.INCOMING_CALL:
              typeImageView.setImageResource(android.R.drawable.sym_call_incoming);
              break;
          case AppConstants.OUTGOING_CALL:
              typeImageView.setImageResource(android.R.drawable.sym_call_outgoing);
              break;
          case AppConstants.MISS_CALL:
              typeImageView.setImageResource(android.R.drawable.sym_call_missed);
              break;
          default:
              break;
          }
      }
  }
  </code></pre>
  
  <p>}</p>