Android 开发,控件开发(大神请进!……)

在Android开发中,对于一些容器控件,怎么定义和开发。就是自定义的控件,在引用使用这个控件的时候,需要往这个控件里面放其他的控件(比如button控件等)。这样的容器... 在Android开发中,对于一些容器控件,怎么定义和开发。就是自定义的控件,在引用使用这个控件的时候,需要往这个控件里面放其他的控件(比如button控件等)。这样的容器控件该如何定义属性呢!Android的自定义控件和C#中的有点不同,现在刚刚接触Android,求高手指教! 展开
 我来答
九尾狐滴大熊
2014-03-04
知道答主
回答量:14
采纳率:0%
帮助的人:10.6万
展开全部
其实一些基础属性系统控件已经有了,比如button,你可以继承button,然后新增一些自己的属性。自己定义的,在或者你想定义一个新的button,可以继承view,然后参照button类,写出自己的button。
不过自定义控件要对系统比较熟悉,不然会有很多麻烦事情,比如event的分发,各种背景设置,选择器设置。非常麻烦,是个细心的活。可以参考http://developer.android.com/guide/topics/ui/custom-components.html
追问
恩,谢谢!
我再问一下,就是像一般的 容器控件 的话,需要继承什么,也是继承view吗,有没有相关的容器自定义的控件开发的案例?
3Q
追答
百度瀑布流,就是自定义容器,
神官0麦依0
科技发烧友

2014-03-04 · 有一些普通的科技小锦囊
知道小有建树答主
回答量:1145
采纳率:75%
帮助的人:372万
展开全部
这是一个自定义的TextView,在xml中用的时候就包名+类名其他的属性还是不变
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;


public class My_TextView extends TextView {


public My_TextView(Context context) {
super(context);
this.setOnClickListener(clickListener);
}


public My_TextView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
this.setOnClickListener(clickListener);
}
OnClickListener clickListener=new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
onCreateDialog().show();
}
};


/**
     * 创建日期及时间选择对话框
     */
    protected Dialog onCreateDialog() {
        Dialog dialog = null;
          Calendar   c = Calendar.getInstance();
            dialog = new DatePickerDialog(
                getContext(),
                new DatePickerDialog.OnDateSetListener() {
                    public void onDateSet(DatePicker dp, int year,int month, int dayOfMonth) {
                      setText("您选择了:" + year + "年" + (month+1) + "月" + dayOfMonth + "日");
                    }
                }, 
                c.get(Calendar.YEAR), // 传入年份
                c.get(Calendar.MONTH), // 传入月份
                c.get(Calendar.DAY_OF_MONTH) // 传入天数
            );
        return dialog;
    }
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式