< 首先有listview 要有数据>
< 然后在条目的点击事件中用意图跳转到显示详情的页面,>
<详情页面的布局必须写一个webview 这样才能通过解析类解析拿到对应的url,显示详情>
< 具体操作看以下代码:>
参考代码():
1:详情页布局 这是带进度条的今日头条2.26版的详情页
<?
xml version=
"1.0"
encoding=
"utf-8"
?>
<
LinearLayout
xmlns:
android
=
"http://schemas.android.com/apk/res/android"
android
:layout_width=
"match_parent"
android
:layout_height=
"match_parent"
android
:orientation=
"vertical"
>
<
RelativeLayout
android
:layout_width=
"match_parent"
android
:layout_height=
"25dp"
>
<
ImageView
android
:layout_marginLeft=
"5dp"
android
:id=
"@+id/De_imagview_back"
android
:layout_width=
"wrap_content"
android
:layout_height=
"wrap_content"
android
:src=
"@mipmap/btn_back_detail_normal"
/>
<
ImageView
android
:id=
"@+id/De_show_fontSize"
android
:layout_alignParentRight=
"true"
android
:layout_marginRight=
"5dp"
android
:layout_width=
"wrap_content"
android
:layout_height=
"wrap_content"
android
:src=
"@mipmap/show_title_details_normal"
/>
</
RelativeLayout
>
<
ImageView
android
:layout_width=
"match_parent"
android
:layout_height=
"1dp"
android
:background=
"#000"
></
ImageView
>
<
ProgressBar
android
:id=
"@+id/progressbar"
android
:visibility=
"gone"
style=
"?android:attr/progressBarStyleHorizontal"
android
:layout_width=
"match_parent"
android
:layout_height=
"wrap_content"
/>
<
WebView
android
:id=
"@+id/webview"
android
:layout_width=
"match_parent"
android
:layout_height=
"wrap_content"
></
WebView
>
</
LinearLayout
>
2: 在Gson解析下面加条目的点击监听,listview控件从上个页面传过来
//
点击显示详情页
mXlv
.setOnItemClickListener(
new
AdapterView.OnItemClickListener() {
@Override
public void
onItemClick(AdapterView<?> parent, View view,
int
position,
long
id) {
Intent intent =
new
Intent(
context
, Details.
class
);
//
给intent中添加URI ,参数就是从当前条目中获取
intent.putExtra(
"url"
,
mDatalist
.get(position).getUrl());
context
.startActivity(intent);
}
});
3:详情界面代码
package
com.example.a1.myheadlinenews;
import
android.os.Bundle;
import
android.support.v7.app.AppCompatActivity;
import
android.view.View;
import
android.webkit.WebChromeClient;
import
android.webkit.WebSettings;
import
android.webkit.WebView;
import
android.webkit.WebViewClient;
import
android.widget.ImageView;
import
android.widget.ProgressBar;
public class
Details
extends
AppCompatActivity
implements
View.OnClickListener {
private
WebView
mWebView
;
private
ProgressBar
mProgressBar
;
private
ImageView
mImageView_back
;
private
ImageView
mImageView_fontSize
;
@Override
protected void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.
activity_details
);
initview();
//
找控件
initdata();
//
初始化数据
}
private void
initdata() {
//
得到传过来的值
String url = getIntent().getStringExtra(
"url"
);
//
获取设置
WebSettings settings =
mWebView
.getSettings();
//
支持
js
settings.setJavaScriptEnabled(
true
);
mWebView
.loadUrl(url);
//
在自己应用中跳转页面
mWebView
.setWebViewClient(
new
WebViewClient());
//
辅助
webview
处理进度条
mWebView
.setWebChromeClient(
new
WebChromeClient(){
@Override
public void
onProgressChanged(WebView view,
int
newProgress) {
super
.onProgressChanged(view, newProgress);
//设置
进度条的隐藏与显示
VISIBLE 显示 GONE 隐藏
mProgressBar
.setVisibility(View.
VISIBLE
);
mProgressBar
.setProgress(newProgress);
if
(newProgress==
100
){
mProgressBar
.setVisibility(View.
GONE
);
}
}
});
mImageView_back
.setOnClickListener(
this
);
}
private void
initview() {
mWebView
= (WebView) findViewById(R.id.
webview
);
mProgressBar
= (ProgressBar) findViewById(R.id.
progressbar
);
mImageView_back
= (ImageView) findViewById(R.id.
De_imagview_back
);
mImageView_fontSize
= (ImageView) findViewById(R.id.
De_show_fontSize
);
}
@Override
public void
onClick(View v) {
switch
(v.getId()){
case
R.id.
De_imagview_back
:
finish();
break
;
}
}
}