 <p>A <code>ListActivity</code> needs a <code>ListView</code> with the ID <code>android.R.id.list</code>. As you create your activity, everything is fine because you're not specifying a content view of your own, and so a default content view containing just a list is being used.</p> <p>Now, in your <code>setContentView</code> call, what your code is really saying is "Now I want the entire screen to be a big webview." In doing this, you're violating the <code>ListActivity</code> requirement of always having a <code>ListView</code>.</p> <p>You <em>could</em> create a layout file that contains a <code>WebView</code> <em>and</em> a <code>ListView</code> with the ID <code>android.R.id.list</code>, and use onclick to toggle their visibility, and perhaps listen to the hardware back button to toggle back. But I think it would be a neater approach to simply have the click listener launch a new activity, containing only the <code>WebView</code>:</p> <pre><code>lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) { // When clicked, show a toast with the TextView text String s = ReadXML.hadashotListItems.get(position).link; Intent intent = new Intent(NewsActivity.this, WebActivity.class); intent.putExtra("url", s); startActivity(intent); } } </code></pre> <p>You could then let your new <code>WebActivity</code> class set <code>R.layout.webview</code> as its content view. Pressing the hardware back button will automatically finish that activity, and bring you back to the list, where you were.</p>