另一种获得控件的方法public View getChildAt(int index)
除了在布局文件里里面给控件设ID,然后通过findViewById(int id)方法得到控件外,还有另一种方法:
比如有这样一个布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
我们没有为2个TextView设置ID,但是照样可以得到它们,方法如下
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linearLayout);
TextView tv1 = (TextView) linearLayout.getChildAt(0);
TextView tv2 = (TextView) linearLayout.getChildAt(1);
用getChildAt方法也可以得到控件
分享到:
相关推荐
本资源提供对于ViewGroup下所以子view的遍历,以及调用Views都过tag或者Widget的类查找返回一个List<View> 使用方法可见示例: 子View遍历 ViewGroup root = (ViewGroup) findViewById(android.R.id.content); ...
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { textview.setText(year + "-" + (monthOfYear + 1)); } }, calendar.get(Calendar.YEAR), ...
public void onPageSelected(int position, int prePosition) { // This space for rent } @Override public void onPageScrollStateChanged(int state) { // This space for rent } } public ...
DragLinearLayout是一个LinearLayout, 他可是其子View在其范围内可拖动、可交换位置。默认情况下,子View是不可拖动的,你需要调用DragLinearLayout.setViewDraggable(child, child)方法让其可拖动。项目地址:...
public void onMenuItemClick(int position, SwipeMenu menu, int index) { switch (index) { case 0: //第一个选项 Toast.makeText(MainActivity.this,"您点击的是置顶",Toast.LENGTH_SHORT)....
final View child = getChildAt(i); if (child.getVisibility() == GONE) { continue; } int makeMeasureSpec = -1; if (child.getId() == R.id.id_circle_menu_item_center) { ...
另一个是所有资源字符串(足球、篮球、排球)id的数组: int[] msgIds={R.string.zq,R.string.lq,R.string.pq}; 然后动态生成每个下拉项对应的View,每个下拉项View由LinearLayout中包含一个ImageView及一个...
public boolean onTouch(View v, MotionEvent event) { if (gestureDetector.onTouchEvent(event)) { return true; } return false; } }; frameLayout = tabHost.getTabContentView(); ...
本文实例讲述了Android编程记录ListView标记行状态的方法。分享给大家供大家参考,具体如下: ... adapterView, View view, int pos, long arg3) { /** * 在ListView中,使用getChildAt(index)的取
public void onPageScrolled(int arg0, float arg1, int arg2) { } // 当新的页面被选中时调用 @Override public void onPageSelected(int arg0) { // 设置底部小点选中状态 setCurrentDot(arg0); } }
解析xml文件或者string更加容易,使用简单 支持unicode,multibytes编码 class CXmlTree { public: BOOL fromXml(const TCHAR* pszSource, BOOL bFromFile);... CXmlTree* getChildAt(int nIndex); };
public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } public void onPageScrollStateChanged(int arg0) { // TODO Authio-...
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { if (mRecyclerView.getChildCount() < 3)...
public void onCheckedChanged(RadioGroup radioGroup, int checkId) { for (int i = 0; i ; i++) { TextView text = (TextView) layout_tv.getChildAt(i); text.setBackgroundColor(getResources().getColor(R....
刚开始实现的时候,我打算使用ListView的 getChildAt(int pos)方法来实现,结果发现非常的cao蛋,因为ListView本身的原因,当你View view=listView.getChildAt(pos),并且改变这个View的状态时,你会发现,高亮的...
没什么难点,利用了webview的特点,和scrollview 的view的绘制,生成bitmap。 主要代码: //这是scrollview的 public static Bitmap getBitmapByView(ScrollView scrollView) { int h = 0; Bitmap bitmap = null; ...
public void onClick(View view) { if (view == mMenu_cloud){ setActionBarTitle(mMenu_name[0]); changeFragment(new CloudFragment()); }else if (view == mMenu_industry){ setActionBarTitle...
View view = flexboxLayout.getChildAt(0); FlexboxLayout.LayoutParams lp = (FlexboxLayout.LayoutParams) view.getLayoutParams(); lp.order = -1; lp.flexGrow = 2; view.setLayoutParams(lp);屏幕...
的onOpen()方法然后对每一个View设置 view.setElevation(dp2px(1));当关闭的时候onStartClose() 再次对每一个view设置原始高度 View view = layout.getChildAt(i); view.setElevation(dp2px(i));
①自定义控件SlidingMenu继承FrameLayout,放在FrameLayout上面的布局一层叠着者一层,通过getChildAt()可以很方便的获取到任意一层,进而控制此布局的变化。 public class SlidingMenu extends FrameLayout { ...