第二天 PopWindow窗口和Menu菜单

作业一

main方法

package com.example.day0928_homework;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

private ListView listView;
private Button button_other;

private ArrayList<Map<String,Object>> list = new ArrayList<>();

private int[] icon = {R.mipmap.e,R.mipmap.f,R.mipmap.five,R.mipmap.four,R.mipmap.header
        ,R.mipmap.one,R.mipmap.seven,R.mipmap.six,R.mipmap.three,R.mipmap.two};
private String[] title = {"卿先仁","月克斯","梦里的花落","婚礼的罪恶","按特色",
        "色达","太烦ad","挖土歌诗图","问题啊","反弹特"};

private String[] str = {"国际瓦工我阿法尔加官方网我按价格日价格法IE共IE让那个覅偶亲爹",
        "你怎么总是这样,我跟你说了多少遍了", "今天去哪里玩呀,亲爱的","你特么真像个人",
        "走,夜店嗨起来","干嘛呢你,网吧走起来啊","。。。","晚安","什么玩意","awrs阿尔泰个数awsl"
};

private String time = "下午2:10";

private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initView();

    initData();

}

private void initData() {

    for (int i = 0; i < 10; i++) {
        Map<String,Object> map = new HashMap<>();
        map.put("icon",icon[i]);
        map.put("title",title[i]);
        map.put("str",str[i]);
        map.put("time",time);

        list.add(map);
    }

}

private void initView() {

    listView = findViewById(R.id.list_view);
    button_other = findViewById(R.id.button_other);
    adapter = new MyAdapter(list,this,listView,button_other);

    listView.setAdapter(adapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent(MainActivity.this, OtherActivity.class);
            startActivity(intent);
        }
    });

}

}

适配器
package com.example.day0928_homework;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.util.Log;
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.ImageView;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MyAdapter extends BaseAdapter {

    private List<Map<String,Object>> totalList;
    private Context context;
    private ListView listView;
    private Button button_other;
    private LayoutInflater layoutInflater;

    public MyAdapter(List<Map<String, Object>> totalList, Context context, ListView listView, Button button_other) {
        this.totalList = totalList;
        this.context = context;
        this.listView = listView;
        this.button_other = button_other;
        layoutInflater = LayoutInflater.from(context);
    }

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

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;

        if(convertView == null){
            holder = new ViewHolder();
            convertView = layoutInflater.inflate(R.layout.layout_list_item,null);

            holder.textView_str = convertView.findViewById(R.id.text_str);
            holder.textView_title = convertView.findViewById(R.id.text_title);
            holder.textView_time = convertView.findViewById(R.id.text_time);
            holder.imageView_pic = convertView.findViewById(R.id.image_pic);
            holder.button_other = convertView.findViewById(R.id.button_other);

            convertView.setTag(holder);
        }else{
            holder = (ViewHolder) convertView.getTag();
        }

        holder.textView_time.setText(totalList.get(position).get("time").toString());
        holder.textView_title.setText(totalList.get(position).get("title").toString());
        holder.textView_str.setText(totalList.get(position).get("str").toString());

        Glide.with(context).load(totalList.get(position).get("icon")).into(holder.imageView_pic);

        listViewLongItem();
        buttonAddItem(holder,position);
        //添加
        addListItem(holder,position);

        return convertView;
    }

    private void addListItem(ViewHolder holder, int position) {


    }


    private void buttonAddItem(final ViewHolder holder, final int position) {

        button_other.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final PopupWindow popupWindow = new PopupWindow(context);

                View inflate = LayoutInflater.from(context).inflate(R.layout.pop_item, null);
                popupWindow.setContentView(inflate);
                popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
                popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);

                popupWindow.setOutsideTouchable(true);

                View button_add = inflate.findViewById(R.id.button_add);

                button_add.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Map<String,Object> map = new HashMap<>();
                        map.put("title","名字");
                        map.put("str","str");
                        map.put("time","下午2.10");
                        map.put("icon",R.mipmap.e);

                        totalList.add(map);
                        notifyDataSetChanged();
                    }
                });

                View button_less = inflate.findViewById(R.id.button_less);
                button_less.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        totalList.clear();
                        notifyDataSetChanged();
                        popupWindow.dismiss();
                    }
                });

                Log.i("TAG", "onClick: "+popupWindow.toString());
                popupWindow.showAsDropDown(button_other);



            }
        });



    }

    private void listViewLongItem() {
        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {

                final AlertDialog.Builder builder = new AlertDialog.Builder(context);
                builder.setMessage("确定要删除吗");
                builder.setTitle("提示信息");
                builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        totalList.remove(position);
                        notifyDataSetChanged();
                        Toast.makeText(context, "删除成功", Toast.LENGTH_SHORT).show();
                    }
                });

                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(context, "取消成功", Toast.LENGTH_SHORT).show();
                    }
                });

                AlertDialog dialog = builder.create();
                dialog.show();
                return true;
            }
        });
    }

    static class ViewHolder{
        TextView textView_title;
        TextView textView_str;
        TextView textView_time;
        ImageView imageView_pic;

        Button button_other;
    }

}

另一个Activity
package com.example.day0928_homework;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class OtherActivity extends AppCompatActivity {

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


    }
}

pop布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:orientation="vertical"
    android:background="#000"
    android:padding="15dp"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    <Button
        android:id="@+id/button_add"
        style="?android:attr/borderlessButtonStyle"
        android:textSize="17sp"
        android:text="添加联系人"
        android:textColor="#fff"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#fff"
        />
    <Button
        android:id="@+id/button_less"
        style="?android:attr/borderlessButtonStyle"
        android:textSize="17sp"
        android:text="清除联系人"
        android:textColor="#fff"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>

作业二

main方法
package com.example.app2;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;

public class MainActivity extends AppCompatActivity {

    private RelativeLayout relativeLayout;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        relativeLayout = findViewById(R.id.relative_layout);
    }

    public void click(View view) {
        button = findViewById(R.id.button);
        PopupWindow pop = new PopupWindow(this);

        View inflate = LayoutInflater.from(this).inflate(R.layout.pop_list, null);

        pop.setContentView(inflate);
        pop.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
        pop.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
        pop.setOutsideTouchable(true);

        pop.setAnimationStyle(R.style.pop);

        myFirstButton(pop,inflate);

        myAlpha(pop,inflate);


    }

    private void myAlpha(PopupWindow pop, View inflate) {

        WindowManager.LayoutParams attributes = getWindow().getAttributes();
        attributes.alpha = 0.5f;
        getWindow().setAttributes(attributes);
        pop.setOnDismissListener(new PopupWindow.OnDismissListener() {
            @Override
            public void onDismiss() {
                WindowManager.LayoutParams attributes1 = getWindow().getAttributes();
                attributes1.alpha = 1.0f;
                getWindow().setAttributes(attributes1);
            }
        });


        pop.showAsDropDown(button);

    }

    private void myFirstButton(final PopupWindow pop, View inflate) {

        View button_red = inflate.findViewById(R.id.button_red);
        View button_blue = inflate.findViewById(R.id.button_blue);
        View button_green = inflate.findViewById(R.id.button_green);

        button_red.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                relativeLayout.setBackgroundColor(Color.rgb(255,0,0));
            }
        });

        button_blue.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                relativeLayout.setBackgroundColor(Color.rgb(0, 0, 255));
            }
        });

        button_green.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                relativeLayout.setBackgroundColor(Color.rgb(0,255,0));
            }
        });


    }
}

作业三

package com.example.app3;

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.Button;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
    private ListView listView;
    private Button button_other;

    private ArrayList<Map<String,Object>> list = new ArrayList<>();

    private int[] icon = {R.mipmap.e,R.mipmap.f,R.mipmap.five,R.mipmap.four,R.mipmap.header
            ,R.mipmap.one,R.mipmap.seven,R.mipmap.six,R.mipmap.three,R.mipmap.two};
    private String[] title = {"卿先仁","月克斯","梦里的花落","婚礼的罪恶","按特色",
            "色达","太烦ad","挖土歌诗图","问题啊","反弹特"};

    private String[] str = {"国际瓦工我阿法尔加官方网我按价格日价格法IE共IE让那个覅偶亲爹",
            "你怎么总是这样,我跟你说了多少遍了", "今天去哪里玩呀,亲爱的","你特么真像个人",
            "走,夜店嗨起来","干嘛呢你,网吧走起来啊","。。。","晚安","什么玩意","awrs阿尔泰个数awsl"
    };

    private String time = "下午2:10";

    private MyAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initData();

        initView();
    }

    private void initView() {
        button_other = findViewById(R.id.button_other);

        listView = findViewById(R.id.list_view);

        adapter = new MyAdapter(list,this,listView);
        listView.setAdapter(adapter);

        buttonPopWindow();
    }

    private void buttonPopWindow() {
        button_other.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                PopupWindow pop = new PopupWindow(MainActivity.this);

                View inflate = LayoutInflater.from(MainActivity.this).inflate(R.layout.pop_item, null);

                pop.setContentView(inflate);
                pop.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
                pop.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);

                pop.setContentView(button_other);

                final Button button_ones = inflate.findViewById(R.id.button_one);
                final Button button_twos = inflate.findViewById(R.id.button_two);
                button_ones.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(MainActivity.this, button_ones.getText(), Toast.LENGTH_SHORT).show();
                    }
                });
                button_twos.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(MainActivity.this, button_twos.getText(), Toast.LENGTH_SHORT).show();
                    }
                });


            }
        });
    }

    private void initData() {
        for (int i = 0; i < 10; i++) {
            Map<String,Object> map = new HashMap<>();
            map.put("icon",icon[i]);
            map.put("title",title[i]);
            map.put("str",str[i]);
            map.put("time",time);

            list.add(map);
        }
    }
}

适配器
package com.example.app3;

import android.content.Context;
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.ImageView;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;

import com.bumptech.glide.Glide;

import java.util.ArrayList;
import java.util.Map;

public class MyAdapter extends BaseAdapter {

    private ArrayList<Map<String,Object>> totalList;
    private Context context;
    private ListView listView;
    private LayoutInflater layoutInflater;

    public MyAdapter(ArrayList<Map<String, Object>> totalList, Context context, ListView listView) {
        this.totalList = totalList;
        this.context = context;
        this.listView = listView;
        layoutInflater = LayoutInflater.from(context);
    }

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

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {



        ViewHolder holder = null;

        if(convertView == null){
            holder = new ViewHolder();
            convertView = layoutInflater.inflate(R.layout.layout_list_item,null);

            holder.textView_str = convertView.findViewById(R.id.text_str);
            holder.textView_title = convertView.findViewById(R.id.text_title);
            holder.textView_time = convertView.findViewById(R.id.text_time);
            holder.imageView_pic = convertView.findViewById(R.id.image_pic);
            holder.button_other = convertView.findViewById(R.id.button_other);

            convertView.setTag(holder);
        }else{
            holder = (ViewHolder) convertView.getTag();
        }

        holder.textView_time.setText(totalList.get(position).get("time").toString());
        holder.textView_title.setText(totalList.get(position).get("title").toString());
        holder.textView_str.setText(totalList.get(position).get("str").toString());

        Glide.with(context).load(totalList.get(position).get("icon")).into(holder.imageView_pic);

        listViewOnclick(holder,position);

        return convertView;
    }

    private void listViewOnclick(final ViewHolder holder, int position) {

        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, final View view, final int position, long id) {
                final PopupWindow pop = new PopupWindow(context);

                View inflate = LayoutInflater.from(context).inflate(R.layout.layout_item_pop, null);
                pop.setContentView(inflate);
                pop.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
                pop.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);

                pop.setOutsideTouchable(true);
                pop.showAsDropDown(view,-100,-100);

                final Button button_toTop = inflate.findViewById(R.id.button_toTop);
                final Button button_remove = inflate.findViewById(R.id.button_remove);
                button_toTop.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        totalList.add(0,totalList.get(position));
                        totalList.remove(position+1);
                        notifyDataSetChanged();
                        pop.dismiss();
                    }
                });

                button_remove.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        totalList.remove(position);
                        notifyDataSetChanged();
                        pop.dismiss();
                    }
                });

                return true;
            }
        });

    }

    static class ViewHolder{
        TextView textView_title;
        TextView textView_str;
        TextView textView_time;
        ImageView imageView_pic;

        Button button_other;
    }
}

pop文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/button_toTop"
            style="?android:attr/borderlessButtonStyle"
            android:background="#000"
            android:textColor="#fff"
            android:text="设为置顶"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <Button
            android:id="@+id/button_remove"
            style="?android:attr/borderlessButtonStyle"
            android:background="#000"
            android:textColor="#fff"
            android:text="删除"
            android:layout_width="45dp"
            android:layout_height="wrap_content" />
    </LinearLayout>

</RelativeLayout>
pop2
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <Button
            android:text="添加好友"
            style="?android:attr/borderlessButtonStyle"
            android:id="@+id/button_one"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:layout_height="0dp" />
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#999999"/>

            <Button
                android:id="@+id/button_two"
                style="?android:attr/borderlessButtonStyle"
                android:text="扫一扫"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

    </LinearLayout>

</RelativeLayout>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值