title: Android ListView, OnListItemClick, find row id?
body: <p>I cant seem to find out how to get my ListView (OnListItemClick), to open different activity´s. I know i somehow need to get some row-id for my ListView, but i dont know how to. Right now every row in my ListView just opens up the same activity. 
  Sorry for my bad English, hope You understand.</p>
  
  <pre><code>import java.util.List;
  import java.util.Vector;
  
  import android.app.Activity;
  import android.app.ListActivity;
  import android.content.Context;
  import android.content.Intent;
  import android.net.ParseException;
  import android.os.Bundle;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.ArrayAdapter;
  import android.widget.ImageView;
  import android.widget.ListView;
  import android.widget.TextView;
  
  
  public class MainActivity extends ListActivity {
  private LayoutInflater mInflater;
  private Vector&lt;RowData&gt; data;
  RowData rd;
  
  static final String[] title = new String[] {
  "Text", 
  "Text", 
  "Text",
  ;
  
  static final String[] detail = new String[] {
  "Image1",
  "Image2",
  "Image3",
  };
  
  private Integer[] imgid = {
  R.drawable.spektr,
  R.drawable.spektr,
  R.drawable.sleep,
  
  
  
  };
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  mInflater = (LayoutInflater) getSystemService(
  Activity.LAYOUT_INFLATER_SERVICE);
  data = new Vector&lt;RowData&gt;();
  for(int i=0;i&lt;title.length;i++){
  
  try {
  rd = new RowData(i,title[i],detail[i]);
  } catch (ParseException e) {
      e.printStackTrace();
  }
  data.add(rd);
  }
  CustomAdapter adapter = new CustomAdapter(this, R.layout.list,
                                R.id.title, data);
  setListAdapter(adapter);
  getListView().setTextFilterEnabled(true);
  }
  public void onListItemClick(ListView parent, View v, int position,
                                                           long id) {         
  
  Intent intent = new Intent(this, NewActivity.class);
  intent.putExtra("id", item.mId);
    startActivity(intent);
  
  }
  private class RowData {
  protected int mId;
  protected String mTitle;
  protected String mDetail;
  RowData(int id,String title,String detail){
  mId=id;
  mTitle = title;
  mDetail=detail;
  }
  @Override
  public String toString() {
          return mId+" "+mTitle+" "+mDetail;
  }
  }
  private class CustomAdapter extends ArrayAdapter&lt;RowData&gt; {
  
  public CustomAdapter(Context context, int resource,
                   int textViewResourceId, List&lt;RowData&gt; objects) {               
  
  super(context, resource, textViewResourceId, objects);
  }
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {   
  
  ViewHolder holder = null;
  TextView title = null;
  TextView detail = null;
  ImageView i11=null;
  RowData rowData= getItem(position);
  if(null == convertView){
       convertView = mInflater.inflate(R.layout.list, null);
       holder = new ViewHolder(convertView);
       convertView.setTag(holder);
  }
        holder = (ViewHolder) convertView.getTag();
        title = holder.gettitle();
        title.setText(rowData.mTitle);
        detail = holder.getdetail();
        detail.setText(rowData.mDetail);                                                     
  
        i11=holder.getImage();
        i11.setImageResource(imgid[rowData.mId]);
        return convertView;
  }
       private class ViewHolder {
       private View mRow;
       private TextView title = null;
       private TextView detail = null;
       private ImageView i11=null; 
  
       public ViewHolder(View row) {
       mRow = row;
  }
    public TextView gettitle() {
        if(null == title){
            title = (TextView) mRow.findViewById(R.id.title);
           }
       return title;
    }     
  
    public TextView getdetail() {
        if(null == detail){
             detail = (TextView) mRow.findViewById(R.id.detail);
               }
      return detail;
    }
   public ImageView getImage() {
        if(null == i11){
             i11 = (ImageView) mRow.findViewById(R.id.img);
                                 }
           return i11;
   }
   }
  
   }
  }
  </code></pre>
  
  <p>And my NewActivity looks like this:</p>
  
  <pre><code>import android.app.Activity;
  import android.os.Bundle;
  
  public class NewActivity extends Activity{
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      // TODO Auto-generated method stub
      super.onCreate(savedInstanceState);
      setContentView(R.layout.poetry);
  
      getIntent().getExtras().getInt("id");
  }}
  </code></pre>