第六单元

fragment

package com.example.day8.morning;

import android.annotation.SuppressLint;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import com.example.day8.R;

import java.util.ArrayList;
import java.util.List;

public class MA extends AppCompatActivity {
    private ListView lv;
    private MyAdapter aaa;
    //存放student集合
    private List<Student> list=new ArrayList<>( );
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_m);

        lv=findViewById(R.id.ma_list);

        for (int i = 0; i < 10; i++) {
            Student student = new Student();
            student.setName("罗罗诺亚"+(i+1)+"龙");
            student.setIcon(R.mipmap.ic_launcher);
            student.setPhone(i);
            list.add(student);
        }
        aaa = new MyAdapter(list, this);
        lv.setAdapter(aaa);

        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
                if( position==0){
                    AlertDialog.Builder builder = new AlertDialog.Builder(MA.this);
                    builder.setIcon(R.mipmap.ic_launcher_round);
                    builder.setTitle("标题。").setMessage(list.get(position).toString());
                    builder.create().show();
                }
                if( position==1){
                    DatePickerDialog dpd = new DatePickerDialog(MA.this);
                    dpd.setOnDateSetListener(new DatePickerDialog.OnDateSetListener() {
                        @Override
                        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

                        }
                    });
                    dpd.create();
                    dpd.show();
                }
                if( position==3){
                    final MyDialog myDialog = new MyDialog(MA.this, aaa, list);
                    myDialog.setYesOnclickListener(new MyDialog.onYesOnclickListener() {
                        @Override
                        public void onYesOnclick() {
                            list.remove(position);
                            aaa.notifyDataSetChanged();
                            myDialog.cancel();
                        }
                    });
                    myDialog.setNoOnclickListener(new MyDialog.onNoOnclickListener() {
                        @Override
                        public void onNoClick() {
                            myDialog.dismiss();
                        }
                    });
                    myDialog.create();
                    myDialog.show();
                }
            }
        });
    }
}
/**
 * 自定义适配器类
 */
class MyAdapter extends BaseAdapter{
    private List<Student > list=new ArrayList<>();
    private Context con;

    public MyAdapter(List<Student> list, Context con) {
        this.list = list;
        this.con = con;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    private ImageView listImage;
    private TextView listName;
    private TextView listPhone;
    private MyId mi;

    @SuppressLint("ViewHolder")
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if( convertView==null) {
            convertView = LayoutInflater.from(con).inflate(R.layout.mp_list_layout, null);
            mi=new MyId();
            mi.icon = (ImageView) convertView.findViewById(R.id.list_image);
            mi.name = (TextView) convertView.findViewById(R.id.list_name);
            mi.phone = (TextView) convertView.findViewById(R.id.list_phone);
            convertView.setTag(mi);
        }else{
            mi= (MyId) convertView.getTag();
        }
        mi.phone.setText(list.get(position).getPhone()+"");
        mi.name.setText(list.get(position).getName());
        mi.icon.setImageResource(list.get(position).getIcon());
        return convertView;
    }
    class MyId{
        private TextView name,phone;
        private ImageView icon;
    }
}
/**
 * 自定义Dialog
 */
class MyDialog extends Dialog{
    private Button sure,unsure;
    private MyAdapter aaa;
    private List<Student> list;
    private onNoOnclickListener noOnclickListener;//取消按钮被点击了的监听器
    private onYesOnclickListener yesOnclickListener;//确定按钮被点击了的监听器

    public MyDialog(Context context,MyAdapter aaa,List<Student> list) {
        super(context);
        this.aaa=aaa;
        this.list=list;

    }

    public void setYesOnclickListener(onYesOnclickListener yesOnclickListener) {
        this.yesOnclickListener = yesOnclickListener;
    }

    public void setNoOnclickListener(onNoOnclickListener noOnclickListener) {
        this.noOnclickListener = noOnclickListener;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mp_mydialog_layout);

        sure=findViewById(R.id.myDialog_button_sure);
        unsure=findViewById(R.id.myDialog_button_unsure);

        setCanceledOnTouchOutside(true);

        sure.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if( yesOnclickListener!=null){
                    yesOnclickListener.onYesOnclick();
                }
            }
        });
        unsure.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if( noOnclickListener!=null){
                    noOnclickListener.onNoClick();
                }
            }
        });
    }

    public interface onNoOnclickListener {
        public void onNoClick();
    }

    public interface onYesOnclickListener {
        public void onYesOnclick();
    }

}

/**
 * student
 */
class Student{
    private String name;
    private int icon;
    private long phone;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getIcon() {
        return icon;
    }

    public void setIcon(int icon) {
        this.icon = icon;
    }

    public long getPhone() {
        return phone;
    }

    public void setPhone(long phone) {
        this.phone = phone;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", icon=" + icon +
                ", phone=" + phone +
                '}';
    }
}

对应的布局

<?xml version="1.0" encoding="utf-8"?>


</LinearLayout>
<android.support.v4.view.ViewPager
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/ap_viewPager"
    android:layout_above="@id/ap_linear"
    >

</android.support.v4.view.ViewPager>
### activity
package com.example.day8.morning;

import android.annotation.SuppressLint;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.example.day8.R;
import com.example.day8.morning.Fragment.MyFragment;

import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

public class MC_activity extends AppCompatActivity {
    private ViewPager vp;
    private List<Fragment> list=new ArrayList<>();
    private int[] arr;
    private int index;

    @SuppressLint("HandlerLeak")
    private Handler han=new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mc_activity);

        arr=new int[]{R.mipmap.image1,R.mipmap.image2,R.mipmap.image3,R.mipmap.image4,R.mipmap.image5};
        vp=findViewById(R.id.mc_viewPager);
        for (int i = 0; i < 5; i++) {
            MyFragment myFragment = new MyFragment();
            Bundle bundle = new Bundle();
            bundle.putInt("image",arr[i]);
            myFragment.setArguments(bundle);
            list.add(myFragment);
        }
        vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                return list.get(i);
            }

            @Override
            public int getCount() {
                return list.size();
            }
        });

        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                han.post(new Runnable() {
                    @Override
                    public void run() {
                        vp.setCurrentItem(index);
                    }
                });
                index++;
                if( index>=list.size()){
                    index=0;
                }
            }
        },0,1000);
    }
}

中午练习


package com.example.day8.afternoon;

import android.media.Image;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.example.day8.R;


import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

public class AP_activity extends AppCompatActivity {
    private ViewPager vp;
    private List<String> list;
    private List<Integer> image=new ArrayList<>();
    private Handler han=new Handler();
    private LinearLayout ll;
    private List<ImageView> image2=new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ap_activity);

        vp=findViewById(R.id.ap_viewPager);
        ll=findViewById(R.id.ap_linear);
        list=new ArrayList<>();

        for (int i = 0; i < 4; i++) {
            list.add(""+i+i+i+i+i+i+i+i);
        }
        image.add(R.mipmap.image1);
        image.add(R.mipmap.image2);
        image.add(R.mipmap.image3);
        image.add(R.mipmap.image4);
        vp.setAdapter(new MyAdapter());

        //添加小圆点
        for (int i = 0; i < 4; i++) {
            ImageView iv = new ImageView(AP_activity.this);
            if(i==0) {
                iv.setImageResource(R.drawable.button_true);
            }else{
                iv.setImageResource(R.drawable.button_false);
            }
            ll.addView(iv);
            image2.add(iv);
        }

        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            int index=0;
            @Override
            public void run() {
                han.post(new Runnable() {
                    @Override
                    public void run() {
                        vp.setCurrentItem(index);
                    }
                });
                index++;
                if( index>=list.size()){
                    index=0;
                }
            }
        },0,1000*3);

        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }

            @Override
            public void onPageSelected(int i) {
                Toast.makeText(AP_activity.this, "切换到了第"+i+"个位置。", Toast.LENGTH_SHORT).show();

                for (int i1 = 0; i1 < image2.size(); i1++) {
                    if( i1==i){
                        image2.get(i).setImageResource(R.drawable.button_true);
                    }else{
                        image2.get(i1).setImageResource(R.drawable.button_false);
                    }
                }
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });
    }

    class MyAdapter extends PagerAdapter{

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
            return view==o;
        }

        @NonNull
        @Override
        public Object instantiateItem(@NonNull ViewGroup container, int position) {
            View inflate = View.inflate(AP_activity.this, R.layout.ap_mylayout, null);
            ImageView pic = inflate.findViewById(R.id.ap_layout_image);
            TextView viewById = inflate.findViewById(R.id.ap_layout_text);
            pic.setImageResource(image.get(position));
            viewById.setText(list.get(position));
            container.addView(inflate);
            return inflate;
        }

        @Override
        public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
//            super.destroyItem(container, position, object);
            container.removeView((View) object);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值