寻求 添加自定义的导航二级菜单的代码 求赐教!~
你可到导航那里添加的喔!导航-------导航设置-------按右下角那个+号添加-----------你可在里面勾选你要在导航显示的分类即可-----------然后点确认-------发布就OK了哈
Android如何自定义LinearLayout
LinearLayout自定义方法有多种:
1、自定义xml布局,然后加载布局,自定义一个View继承LinearLayout
2、在自定义控件中声明它的所有子元素,然后在Layout文件中像使用LinearLayout一样去进行布局。
第二种比较烦 ,它需要在Layout文件中定义好子元素之后,要在代码 onFinishInflate() 进行匹配子元素。
我就说说加载布局文件的方法吧。
首先:定义好layout文件
《?xml version=“1.0“ encoding=“utf-8“?》《LinearLayout xmlns:android=“ android:layout_width=“fill_parent“ android:layout_height=“fill_parent“ android:orientation=“horizontal“ 》 《ImageView android:id=“@+id/imageView1“ android:layout_width=“wrap_content“ android:layout_height=“wrap_content“ android:layout_gravity=“center_vertical“ android:paddingBottom=“5dip“ android:paddingLeft=“40dip“ android:paddingTop=“5dip“ android:src=“@drawable/right_icon“ /》 《TextView android:id=“@+id/textView1“ android:layout_width=“wrap_content“ android:layout_height=“wrap_content“ android:layout_gravity=“center_vertical“ android:layout_marginLeft=“8dip“ android:text=“主题“ android:textColor=“#000000“ /》 《LinearLayout android:layout_width=“100dp“ android:layout_height=“fill_parent“ android:orientation=“horizontal“ 》 《ImageView android:id=“@+id/imageView2“ android:layout_width=“wrap_content“ android:layout_height=“wrap_content“ android:layout_gravity=“center_vertical“ android:paddingBottom=“5dip“ android:paddingLeft=“12dip“ android:paddingTop=“5dip“ android:src=“@drawable/home_icon“ /》 《ImageView android:id=“@+id/imageView3“ android:layout_width=“wrap_content“ android:layout_height=“wrap_content“ android:layout_gravity=“center_vertical“ android:paddingBottom=“5dip“ android:paddingLeft=“12dip“ android:paddingTop=“5dip“ android:src=“@drawable/add_icon“ /》 《/LinearLayout》《/LinearLayout》
public class MyLinearLayout extends LinearLayout { private ImageView imageView,iv_home,iv_add; private TextView textView; public MyLinearLayout (Context context) { super(context); // TODO Auto-generated constructor stub } public MyLinearLayout (Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.actionbar, this); imageView=(ImageView) findViewById(R.id.imageView1); iv_home=(ImageView) findViewById(R.id.imageView2); iv_add=(ImageView) findViewById(R.id.imageView3); textView=(TextView)findViewById(R.id.textView1); } /** * 设置图片资源 */ public void setImageResource(int resId) { imageView.setImageResource(resId); } /** * 设置显示的文字 */ public void setTextViewText(String text) { textView.setText(text); } }
《?xml version=“1.0“ encoding=“utf-8“?》《LinearLayout xmlns:android=“ android:layout_width=“fill_parent“ android:layout_height=“fill_parent“ android:orientation=“horizontal“ 》 《cn.com.demo.view.MyLinearLayout android:id=“@+id/ll_actionbar“ android:layout_height=“fill_parent《span style=“font-family: Tahoma, ’Microsoft Yahei’, Simsun;“》“ 《/span》 android:layout_width=“wrap_content“ android:background=“@drawable/bg“ /》《/LinearLayout》
接下来自定义一个MyLinearLayout继承LinearLayout,并且加载刚刚写好的layout文件。(比如private ImageView imageView,iv_home,iv_add;private TextView textView;public MyLinearLayout (Context context) {super(context);// TODO Auto-generated constructor stub}public MyLinearLayout (Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stubLayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);inflater.inflate(R.layout.actionbar, this);imageView=(ImageView) findViewById(R.id.imageView1);iv_home=(ImageView) findViewById(R.id.imageView2);iv_add=(ImageView) findViewById(R.id.imageView3);textView=(TextView)findViewById(R.id.textView1);}/** * 设置图片资源 */ public void setImageResource(int resId) { imageView.setImageResource(resId); } /** * 设置显示的文字 */ public void setTextViewText(String text) { textView.setText(text); } }
最后,要的时候使用定义好的MyLinearLayout控件。-自定义
谁能给一段点击之后出现日历的代码
《html》《head》《title》《/title》《meta 《/head》《body bgcolor=“#FFFFFF“ text=“#000000“ leftMargin=“0“ topMargin=“0“》《script》Seperator = “-“;var DateStr = ““;// value为指定格式的日期字符串function SetDateFromCalendar(value){ if(top.frames.length》0) { top.frames(“mainFrame“).DateObjCtrl_SetDateValue(value);}else{parent.DateObjCtrl_SetDateValue(value);}DateStr = value;}// 返回日期字符串function public_getSelectedDate(){return DateStr;}《/script》《script language=“JavaScript“》var gdCtrl = new Object();var gcGray = “#808080“;var gcToggle = “#ffff00“;var gcBG = “#cccccc“;var gdCurDate = new Date();var giYear = gdCurDate.getFullYear();var giMonth = gdCurDate.getMonth()+1;var giDay = gdCurDate.getDate();var VicPopCal = new Object();// 显示日历控件function fPopCalendar(popCtrl, dateCtrl, popCal){parent.event.cancelBubble=true;VicPopCal = popCal; // 弹出日历控件的IDgdCtrl = dateCtrl; // 得到日期数字的控件ID, popCtrl是指定日期控件出现位置的标识fSetYearMon(giYear, giMonth); var point = fGetXY(popCtrl); // 得到popCtrl的坐标with (VicPopCal.style) {left = point.x;top = point.y+popCtrl.offsetHeight+1; // 设置日历控件的坐标visibility = ’visible’;}VicPopCal.focus();}// 隐藏日历控件, 设置gdCtrl的值, 单击今天日期后执行该函数// 直接得到日期字符串function fSetDate(iYear, iMonth, iDay){gdCtrl.value = iMonth+“-“+iDay+“-“+iYear; //Here, you could modify the locale as you need !!!!VicPopCal.style.visibility = “hidden“;}// 单击表格执行此函数function fSetSelected(aCell){ var iOffset = 0;var iYear = parseInt(tbSelYear.value);var iMonth = parseInt(tbSelMonth.value);aCell.bgColor = gcBG;// 此段代码,控制要是点中的不是当月的日期,自动得到前一个月或后一个月with (aCell.children[“cellText“]){var iDay = parseInt(innerText);if (color==gcGray)iOffset = (Victor《10)?-1:1;iMonth += iOffset;if (iMonth《1) {iYear--;iMonth = 12;}else if (iMonth》12){iYear++;iMonth = 1;}}// 获得年月日期数var dateText = parseInt(aCell.innerText);if(iMonth《10)iMonth = “0“ + iMonth;if(aCell.innerText《10)dateText = “0“ + dateText; // 将年月日组成指定字符串传给回传函数 SetDateFromCalendar(iYear + Seperator + iMonth + Seperator + dateText);}// 指定当前object的显示位置function Point(iX, iY){this.x = iX;this.y = iY;}// 建立当月的日期数组function fBuildCal(iYear, iMonth) { // 传过来的月加了1,表示下一月var aMonth=new Array();for(i=1;i《7;i++)aMonth[i]=new Array(i);// 创建当前月第一天日期对象var dCalDate=new Date(iYear, iMonth-1, 1);var iDayOfFirst=dCalDate.getDay();//得到该日是星期几var iDaysInMonth=new Date(iYear, iMonth, 0).getDate();// 得到下一月var iOffsetLast=new Date(iYear, iMonth-1, 0).getDate()-iDayOfFirst+1;var iDate = 1;var iNext = 1;for (d = 0; d 《 7; d++)aMonth[d] = (d《iDayOfFirst)?-(iOffsetLast+d):iDate++;for (w = 2; w 《 7; w++)for (d = 0; d 《 7; d++)aMonth[w][d] = (iDate《=iDaysInMonth)?iDate++:-(iNext++);return aMonth;}// 画出星期title,和显示数据function fDrawCal(iYear, iMonth, iCellWidth, iDateTextSize) {var WeekDay = new Array(“日“,“一“,“二“,“三“,“四“,“五“,“六“);var styleTD = “ bgcolor=’“+gcBG+“’ width=’“+iCellWidth+“’ bordercolor=’“+gcBG+“’ valign=’middle’ align=’center’ style=’font:bold “+iDateTextSize+“ Courier;“; with (document) {write(“《tr》“);for(i=0; i《7; i++)write(“《td “+styleTD+“color:#990099’ 》“ + WeekDay[i] + “《/td》“);write(“《/tr》“);for (w = 1; w 《 7; w++) {write(“《tr》“);for (d = 0; d 《 7; d++) {write(“《td id=calCell “+styleTD+“cursor:hand;’ onMouseOver=’this.bgColor=gcToggle’ onMouseOut=’this.bgColor=gcBG’ onclick=’fSetSelected(this)’》“);write(“《font id=cellText Victor=’KinLee’》 《/font》“);write(“《/td》“)}write(“《/tr》“);}}}// 填入表格日期数据,可用的和不可用的用不同的底色来区分function fUpdateCal(iYear, iMonth) {myMonth = fBuildCal(iYear, iMonth); // 初始化当月的日期显示数组var i = 0;for (w = 0; w 《 6; w++)for (d = 0; d 《 7; d++)with (cellText[(7*w)+d]) { // cellText是表格的标识,都叫cellText,用下标来指示Victor = i++;if (myMonth[w+1][d]《0) {color = gcGray;innerText = -myMonth[w+1][d];}else{color = ((d==0)||(d==6))?“red“:“black“; // 星期六、日颜色为红色innerText = myMonth[w+1][d];}}}// 在下拉框中选中当前年和月, 然后更新数据显示function fSetYearMon(iYear, iMon){tbSelMonth.options[iMon-1].selected = true;for (i = 0; i 《 tbSelYear.length; i++)if (tbSelYear.options[i].value == iYear)tbSelYear.options[i].selected = true;fUpdateCal(iYear, iMon);}// 上一月function fPrevMonth(){var iMon = tbSelMonth.value;var iYear = tbSelYear.value;if (--iMon《1) {iMon = 12;iYear--;}fSetYearMon(iYear, iMon);}// 下一月function fNextMonth(){var iMon = tbSelMonth.value;var iYear = tbSelYear.value;if (++iMon》12) {iMon = 1;iYear++;}fSetYearMon(iYear, iMon);}function fGetXY(aTag){var oTmp = aTag;var pt = new Point(0,0);do {pt.x += oTmp.offsetLeft;pt.y += oTmp.offsetTop;oTmp = oTmp.offsetParent;} while(oTmp.tagName!=“BODY“);return pt;}var gMonths = new Array(“01“,“02“,“03“,“04“,“05“,“06“,“07“,“08“,“09“,“10“,“11“,“12“);//打印出年月日的显示的表格,之后再填入数字with (document) {write(“《table id=’popTable’ border=’0’ bgcolor=’#6699cc’》“);write(“《TR》“);write(“《td valign=’middle’ align=’center’》《input type=’button’ name=’PrevMonth’ value=’《’ style=’height:20;width:20;FONT:16 Fixedsys’ onClick=’fPrevMonth()’》“);write(“ 《SELECT name=’tbSelYear’ onChange=’fUpdateCal(tbSelYear.value, tbSelMonth.value)’ Victor=’Won’》“);for(i=2000;i《3000;i++)write(“《OPTION value=’“+i+“’》“+i+“《/OPTION》“);write(“《/SELECT》“);write(“ 《select name=’tbSelMonth’ onChange=’fUpdateCal(tbSelYear.value, tbSelMonth.value)’ Victor=’Won’》“);for (i=0; i《12; i++)write(“《option value=’“+(i+1)+“’》“+gMonths[i]+“《/option》“);write(“《/SELECT》“);write(“ 《input type=’button’ name=’NextMonth’ value=’》’ style=’height:20;width:20;FONT:16 Fixedsys’ onclick=’fNextMonth()’》“);write(“《/td》“);write(“《/TR》《TR》“);write(“《td align=’center’》“);write(“《DIV style=’background-color:teal;’》《table width=’100%’ border=’0’ cellpadding=’2’》“);fDrawCal(giYear, giMonth, 19, 12);write(“《/table》《/DIV》“);write(“《/td》“);write(“《/TR》《TR》《TD align=’center’》“);write(“《font style=’cursor:hand;font:12 Fixedsys’ onclick=’fSetDate(giYear,giMonth,giDay)’ onMouseOver=’this.style.color=gcToggle’ onMouseOut=’this.style.color=0’》今天是: “+giYear+“年“+gMonths[giMonth-1]+“月“+giDay+“日“+“《/font》“);write(“《/TD》《/TR》“);write(“《/TD》《/TR》“);write(“《/TABLE》“);}var today = new Date();// 用当前的日期更新月历显示fSetYearMon(today.getFullYear(), today.getMonth() + 1);// 填入表格日期数据,可用的和不可用的用不同的底色来区分//fUpdateCal(today.getFullYear(), today.getMonth() + 1);《/script》《/body》《/html》