个人笔记(第五篇)(Dialog的完整写法)

来源:互联网 发布:淘宝网广场舞连衣裙 编辑:程序博客网 时间:2024/05/29 16:01

啊。过了节之后就是懒懒的,没动手写过了,其实是有点忙了。

总结一下这些天的问题吧;

第一个:如何在Adapter中进行点击事件以及数据的删除,以及在适配器中进行界面跳转动作(原因在这里http://blog.csdn.net/scwhy/article/details/6650712 ,解决方法很简单,添加一行代码就行了)

listItemView.button2.setOnClickListener(new View.OnClickListener() {    @Override    public    void onClick(View v) {        Toast.makeText(context, "被点击了", Toast.LENGTH_LONG).show();        Intent intent=new Intent(context,ShouhuoActivity.class);        intent.putExtra("position",position);        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);这一行很重要        context.startActivity(intent);    }});listItemView.button3.setOnClickListener(new View.OnClickListener() {    @Override    public    void onClick(View v) {        Toast.makeText(context, "被点击了", Toast.LENGTH_LONG).show();        listitems.remove(position);        notifyDataSetChanged();    }});
第二个;Dialog页面的圆角问题:

一定要注意你的控件是否覆盖到了你的圆角,如果覆盖到了你的圆角,是不会显示出圆角效果的,应该把此控件也设置为圆角才行

圆角的写法,在drawable文件夹中新建文件,名字随意。对应的分别控制四个边角。数值越大,圆角越大

<?xml version="1.0" encoding="utf-8"?>    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">        <item>            <shape>                <solid android:color="#ffffff" />                <corners android:topLeftRadius="10dp" android:topRightRadius="10dp"                         android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp" />                <stroke android:width="0dp" android:color="@color/blue" />            </shape>        </item>    </layer-list>
对应的style,在2.3版本需要继承的是
@style/Theme.AppCompat.Dialog

然后如下写就行

<style name="TranslucentTheme" parent="@style/Theme.AppCompat.Dialog">    <!-- 边框 -->    <item name="android:windowFrame">@null</item>    <!-- 是否浮现在activity之上 -->    <item name="android:windowIsFloating">true</item>    <!-- 半透明 -->    <item name="android:windowIsTranslucent">true</item>    <!-- 无标题 -->    <item name="android:windowNoTitle">true</item>    <item name="android:background">@android:color/transparent</item>    <!-- 背景透明 -->    <item name="android:windowBackground">@android:color/transparent</item>    <!-- 模糊 -->    <item name="android:backgroundDimEnabled">true</item>    <!-- 遮罩层 -->    <item name="android:backgroundDimAmount">0.5</item></style>
自定义的MyDialog:

public class MyDialog extends Dialog{    private static int mTheme = R.style.TranslucentTheme;    private List<Map<String,Object>> listItems;    private TrackListViewAdapter trackListViewAdapter;    private ListView listView;    private Context mContext;    public MyDialog(Context context, int theme) {        super(context, theme);        this.mContext = context;    }    public MyDialog(Context context) {        super(context, mTheme);        this.mContext = context;    }    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_person_track);        initView();        listItems=initItmes();        trackListViewAdapter=new TrackListViewAdapter(getContext(),listItems);        listView.setAdapter(trackListViewAdapter);    }    public void initView(){        listView=(ListView)findViewById(R.id.person_track_listview);    }    private List<Map<String,Object>> initItmes( ){        listItems=new ArrayList<Map<String,Object>>();        Map map1=new HashMap();        map1.put("bool",true);        map1.put("time","18:06");        map1.put("dizhi","【收货地址】河南省郑州市中原区 中原西路街道 河南省郑州市中原区中路万达A座1938");        Map map2=new HashMap();        map2.put("bool",false);        map2.put("time","12:06");        map2.put("dizhi","已发出");        Map map3=new HashMap();        map3.put("bool",false);        map3.put("time","6:06");        map3.put("dizhi","已发出");        listItems.add(map1);        listItems.add(map2);        listItems.add(map3);        return listItems;    }}
使用方法就是在你需要的地方加上两句话

Dialog dialog=new MyDialog(getContext());dialog.show();
第三个;彩带条的写法:

网上找来的。我就直接贴代码了。直接复制就能用:

首先,在values添加文件attrs.xml

<?xml version="1.0" encoding="utf-8"?><resources>    <declare-styleable name="ColourLineView">        <!--线条高度-->        <attr name="line_height" format="dimension"/>        <!--第一种颜色块的宽度-->        <attr name="item_width" format="dimension"/>        <!--第二种颜色块的宽度-->        <attr name="separation_width" format="dimension"/>        <!--平行四边形倾斜的程度-->        <attr name="lean_degree" format="dimension"/>        <!--第一种颜色-->        <attr name="first_color" format="color"/>        <!--第二种颜色-->        <attr name="second_color" format="color"/>        <!--线条底色-->        <attr name="canvas_color" format="color"/>    </declare-styleable></resources>

然后是自定义的View:

/**彩色分割线 * Created by Administrator on 2017/5/31 0031. */public class ColourLineView extends View {    //线条高度    private float line_height;    //每个颜色块的宽度    private float item_width;    //每两个颜色快之间的间距    private float separation_width;    //平行四边形倾斜的程度    private float lean_degree;    //第一种颜色块的颜色    private int first_color;    //第二种颜色块的颜色    private int second_color;    //线条底色    private int canvas_color;    public ColourLineView(Context context) {        super(context, null);    }    public ColourLineView(Context context, AttributeSet attrs) {        super(context, attrs);        initAttr(context, attrs);    }    public ColourLineView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        initAttr(context, attrs);    }    public void initAttr(Context context, AttributeSet attrs){        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ColourLineView);        line_height = typedArray.getDimension(R.styleable.ColourLineView_line_height, 20);        item_width = typedArray.getDimension(R.styleable.ColourLineView_item_width, 20);        separation_width = typedArray.getDimension(R.styleable.ColourLineView_separation_width, 20);        lean_degree = typedArray.getDimension(R.styleable.ColourLineView_lean_degree, 5);        first_color = typedArray.getColor(R.styleable.ColourLineView_first_color, Color.RED);        second_color = typedArray.getColor(R.styleable.ColourLineView_second_color, Color.GREEN);        canvas_color = typedArray.getColor(R.styleable.ColourLineView_canvas_color, Color.WHITE);        typedArray.recycle();    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        Path path = new Path();        int lineWidth = getWidth();        int lineHeight = getHeight();        int count = (item_width + separation_width == 0) ? 0 : lineWidth / (int) (item_width + separation_width) + 1;        for(int i=0; i < count; i++){            canvas.save();            path.reset();//重置路径            path.moveTo(lean_degree + (item_width + separation_width) * i, 0);//左上点            path.lineTo((item_width + separation_width) * i, lineHeight);//左下点            path.lineTo(item_width * (i + 1) + separation_width * i, lineHeight);//右下点            path.lineTo(lean_degree + item_width * (i + 1) + separation_width * i, 0);//右上点            canvas.clipPath(path);//截取路径所绘制的图形            if(i % 2 == 0){                canvas.drawColor(first_color);            }else{                canvas.drawColor(second_color);            }            canvas.restore();        }    }}
最后在布局里面需要添加的地方加入:颜色和宽度就自己调整吧,代码很详细了

<com.example.administrator.qinghuayuan.untils.ColourLineView    android:layout_width="match_parent"    android:layout_height="@dimen/DIMEN_5PX"    android:background="#fff"    app:first_color="@color/juhong"    app:second_color="@color/blue"    app:item_width="@dimen/DIMEN_15PX"    />

恩。今天就大概这么多吧

下班前追加一个东西,关于设置登录之后不再返回登陆界面的设置

http://blog.csdn.net/crazy_yyyyy/article/details/51494524

只能说很好用

原创粉丝点击