作业一
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>