//首先创建布局和自定义控件
<android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="200dp"></android.support.v4.view.ViewPager>
//创建自定义banner类
package com.example.mr.weekonework; import android.content.Context; import android.os.Handler; import android.os.Message; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.View; import android.widget.FrameLayout; import java.util.List; /** * Created by Mr赵 on 2017/12/3. */ public class AutoBanner extends FrameLayout { private ViewPager vp;
//创建handler Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what==0){ vp.setCurrentItem(vp.getCurrentItem()+1); handler.sendEmptyMessageDelayed(0,2000); } } }; public AutoBanner(@NonNull Context context) { super(context); } public AutoBanner(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); info(); } public AutoBanner(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
//实例化一个布局 private void info() { View view = View.inflate(getContext(), R.layout.banner_view, this); vp = view.findViewById(R.id.vp); }
//创建加载图片方法--参数一图片的集合 参数二调取接口 public void imag(List<String> li,Jiekou jiekou){ //开启适配器 pageAdaptter pageAdaptter = new pageAdaptter(li, getContext(),jiekou); vp.setAdapter(pageAdaptter); }
//创建handler轮播的方法 public void lun(){ handler.sendEmptyMessageDelayed(0,2000); } }
//Activity
package com.example.mr.weekonework; import android.content.Context; import android.content.Intent; import android.os.PersistableBundle; import android.os.StrictMode; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.widget.Toast; import com.google.gson.Gson; import java.io.IOException; import java.util.ArrayList; import java.util.List; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class MainActivity extends AppCompatActivity { private List<Datadatebean.DataBean> data; private List<String> li = new ArrayList<>();; private AutoBanner banner;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); banner = findViewById(R.id.banner); banner.lun(); //创建点击事件 info(); } //报错解决方法 @Override public View onCreateView(String name, Context context, AttributeSet attrs) { if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } return super.onCreateView(name, context, attrs); } private void info() { OkHttpClient okHttpClient = new OkHttpClient(); //创建请求方式 Request build = new Request.Builder().url("http://120.27.23.105/ad/getAd").build(); Call call = okHttpClient.newCall(build); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(Call call, final Response response) throws IOException { runOnUiThread(new Runnable() { @Override public void run() { String string = null; try { string = response.body().string(); Gson gson = new Gson(); Datadatebean js = gson.fromJson(string, Datadatebean.class); data = js.getData(); for (int i=0;i<data.size();i++){ String icon = data.get(i).getIcon(); li.add(icon); } //对象调个方法 banner.imag(li, new Jiekou() { @Override public void onclick(int i) { if(data.get(i).getType()==0){ Intent intent = new Intent(MainActivity.this,XiangQingActivity.class); intent.putExtra("url",data.get(i).getUrl()); startActivity(intent); }else if(data.get(i).getType()==1){ Toast.makeText(MainActivity.this,"这是详情页面",Toast.LENGTH_SHORT).show(); } } }); } catch (IOException e) { e.printStackTrace(); } } }); } }); } }
//转入的Webview
package com.example.mr.weekonework; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; public class XiangQingActivity extends AppCompatActivity { private WebView wb; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_xiang_qing); //获取控件 wb = findViewById(R.id.wb); intent = getIntent(); String url = intent.getStringExtra("url"); wb.loadUrl(url); WebSettings settings = wb.getSettings(); settings.setJavaScriptEnabled(true); } }