This is actually pretty simple:
This is your activity using ListView, it implements OnItemClickListener:
public class MainActivity extends Activity implements OnItemClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); //* *EDIT* * ListView listview = (ListView) findViewById(R.id.listView1); listview.setOnItemClickListener(this); } public void onItemClick(AdapterView<?> l, View v, int position, long id) { Log.i("HelloListView", "You clicked Item: " + id + " at position:" + position); // Then you start a new Activity via Intent Intent intent = new Intent(); intent.setClass(this, ListItemDetail.class); intent.putExtra("position", position); // Or / And intent.putExtra("id", id); startActivity(intent); }
Edit
The above code will be placed in your MainActivity.java. I changed the class name to MainActivity , and the contentView to setContentView(R.layout.activity_main) - the names are the names of the newly created Android project in Eclipse.
See also two new lines in the section // * * Edit * - they will install the Listener for clicks on items in the list.
Your activity_main.xml file should look like this:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content"> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:entries="@array/sections" > </ListView> </RelativeLayout>
array.xml (not string.xml) in your `res / values /` folder looks like this:
<resources> <string-array name="sections"> <item >Pro Constructive</item> <item >Con Constructive</item> <item >1st Speaker Cross</item> <item >Pro Rebbutal</item> <item >Con Rebuttal</item> <item >2nd Speaker Cross</item> <item >Pro Summary</item> <item >Con Summary</item> <item >Grand Cross</item> <item >Pro Final Focus</item> <item >Con Final Focus</item> </string-array> </resources>
NB: If you copy and paste this code, it should work. But you will get an error by clicking on the item because you have not created ListItemDetail.class .
Here is an example of how it might look:
Your ListItemDetail.java:
public class ListItemDetail extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listitem); Intent intent = getIntent(); int position = intent.getIntExtra("position", 0); // Here we turn your string.xml in an array String[] myKeys = getResources().getStringArray(R.array.sections); TextView myTextView = (TextView) findViewById(R.id.my_textview); myTextView.setText(myKeys[position]); } }
And its activity_listitem.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/my_textview"/> </LinearLayout>
If you copy this code, it will work.