步骤5:创建查看器活动
非常好的问题。让我们现在就来创建一个查看器活动!这个活动将用于向用户显示教程内容。通过继承Activity创建一个新的类,并把它命名为TutViewerActivity.java。为它创建一个布局资源文件,文件只包括一项:一个WebView控件。布局文件应该看起来如下:
在TutViewerActivity类的onCreate()方法中,调用setContentView()方法并
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tutView">
将这个布局传入。最后,不要忘了将这个活动添加到你的AndroidManifest.xml 文件。
步骤6:启动Details Activity
注意力回到TutListActivity一会。让我们看看我们需要做什么来启动这个查看器Activity显示合适文章链接。在onItemClick()方法中,被点击项的位置被作为一个int型的值传入。这就是我们需要用来访问文章链接数组的值。
链接数组里的字符串值是URL。传递URL到另一个活动的简便方法是通过setData()方法向Intent添加一个Uri。下面是onItemClick()的最终实现,它启动查看器活动,传入合适的URL:
@Override
public void onItemClick(AdapterView>parent, View view,
int position, long id) {
Stringcontent=links[position];
IntentshowContent=newIntent(getApplicationContext(), TutViewerActivity.class);
showContent.setData(Uri.parse(content)); startActivity(showContent);
}
如果你只是将这些代码直接粘贴到onCreate()方法的最后面,你会注意到links变量还没有定义。因为它将用于OnItemClickListener类,变量必须是一个final值,如下:
final String[]links=getResources().getStringArray(R.array.tut_links);
这一行必须放在OnItemClickListener的定义之前。是的,你可以将它定义成非final的成员变量。对于更复杂的情况,那样做甚至是必须的。但是在这里,我们可以在方法中放置所有代码。现在如果你运行这个程序,你将得到一个空白的查看器界面。活动正确地启动了,但是我们需要去连接查看器活动来在WebView控件中加载URL。
步骤7:加载URL
注意力回到TutViewerActivity.java文件。在调用setContentView()方法之后,添加代码,在传入的Intent中检索Uri并将它转换成String变量。然后将一个调用添加到WebView类的loadUrl()方法。整个TutViewerActivity类的代码将看起来像这样:
public class TutViewerActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tut_view);
IntentlaunchingIntent=getIntent();
Stringcontent=launchingIntent.getData().toString();
WebViewviewer= (WebView) findViewById(R.id.tutView);
viewer.loadUrl(content);
}
}
现在再运行程序。正常了么?还没有!最后一个细节:你必须把网终权限添加到AndroidManifest.xml文件。现在运行这个程序,你将看到程序正常运行了:
步骤8:改善体验(可选)目前来看,用户体验只是做到了仅仅是可以用。ListView展示所有文章标题,用户可以点击列表某一项并且可以转到一个带有WebView控件的活动来展示合适的URL的内容。为了将这个最基本的实现变得更优雅一些你可能考虑以下几个方面:
设置浏览视图的初始缩放以应对接来的缩放
配置WebView使其包含更多增强浏览体验的控件
动态加载文章列表,而不是使用静态数组
为ListView添加特效视觉效果
充分利用大屏幕
向ListView增加附加的信息:副标题,难度级别,图标,已读指示,收藏按钮等。
总结
ListView小工具是在界面上以列表形式组织数据的快速方式。在这个教程中我们只是接触到ListView控件的最表层。然而,你学到了最基础的:创建列表项,使用数据适配器,以及处理列表项点击。