MainActivity主页面import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; 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.Response; public class MainActivity extends AppCompatActivity { private CustomBanner customBanner; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /*CombineView combineView = findViewById(R.id.combine_view); combineView.setText("是否开启夜间模式"); combineView.setChecked(true);*/ customBanner = (CustomBanner) findViewById(R.id.custom_banner); //请求数据进行解析展示 getDataFromNet(); } private void getDataFromNet() { OkHttp3Util.doGet("http://120.27.23.105/ad/getAd", new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { if (response.isSuccessful()){ String json = response.body().string(); final DataBean1 detalBean = new Gson().fromJson(json,DataBean1.class); final List<DataBean1.DataBean> data = detalBean.getData(); final List<String> list = new ArrayList<>(); for (int i=0;i<data.size();i++){ String icon = data.get(i).getIcon(); list.add(icon); } runOnUiThread(new Runnable() { @Override public void run() { //设置时间 customBanner.setTimeSecond(5); //设置显示轮播 customBanner.setImageUrls(list); //设置点击事件 customBanner.setClickListner(new CustomBanner.OnClickLisner() { @Override public void onItemClick(int position) { DataBean1.DataBean dataBean = data.get(position); if (dataBean.getType()==0){ Intent intent=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent); } else if (dataBean.getType()==1){ Toast.makeText(MainActivity.this,"我要跳转到商品详情页",Toast.LENGTH_SHORT).show(); } } }); } }); } } }); } }Main2Activity 点击跳转后的页面
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.webkit.WebView; public class Main2Activity extends AppCompatActivity { private WebView web; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); web = (WebView) findViewById(R.id.web); web.loadUrl("http://m.mv14449315.icoc.bz/index.jsp"); } }CombineView页面import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.View; import android.widget.CheckBox; import android.widget.FrameLayout; import android.widget.TextView; /** * Created by dell on 2017/12/30. */ public class CombineView extends FrameLayout implements View.OnClickListener { private TextView textView; private CheckBox checkBox; private String text; private boolean checked; public CombineView(@NonNull Context context) { super(context); init(); } public CombineView(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); //获取xml里面初始的属性值 text = attrs.getAttributeValue("http://schemas.android.com/apk/res-auto", "text"); //第一个参数表示命名空间,,,第二个参数属性的名称,,,第三个参数是默认的布尔值 checked = attrs.getAttributeBooleanValue("http://schemas.android.com/apk/res-auto", "checked", false); init(); } public CombineView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } /** * 初始化的方法....加载出布局,并且添加到当前自定义view上 */ private void init() { //第三个参数:是否有挂载的父控件...现在有了,当前的自定义view...相当于addView() View view = View.inflate(getContext(), R.layout.combine_layout, this); textView = view.findViewById(R.id.combine_text); checkBox = view.findViewById(R.id.combine_check); //点击事件 this.setOnClickListener(this); //设置初始的数据 textView.setText(text); checkBox.setChecked(checked); } /** * 对外提供设置文本的方法 */ public void setText(String text){ textView.setText(text); } /** * 对外提供设置是否选中的方法 */ public void setChecked(boolean flag){ checkBox.setChecked(flag); } /** * 对外提供是否选中的方法 */ public boolean getChecked(){ return checkBox.isChecked(); } @Override public void onClick(View view) { //改变checkBox状态 checkBox.setChecked(! checkBox.isChecked()); } }CustomBanner页面package zhuyuanyuan.bwei.com.zhoukaoyimoni; import android.content.Context; import android.os.Handler; import android.os.Message; impor
自定义Banner 点击跳转
最新推荐文章于 2022-11-22 11:29:10 发布
本文介绍了如何在Android应用中实现一个自定义Banner组件,包括从网络获取数据、展示轮播图片以及设置点击事件实现页面跳转。主要涉及OkHttp3Util工具类用于网络请求,CustomBanner组件负责轮播图展示,同时包含主页面MainActivity、点击跳转后的Main2Activity以及自定义的CombineView组件的使用。
摘要由CSDN通过智能技术生成