Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid ListView, OnListItemClick, find row id?
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload