ViewPaper里面的layout怎么动态改变

doudousang1 2014-10-29 09:43:55
public class CopyOfViewPaperActivity extends Activity implements OnPageChangeListener {


private ViewPager vp;
private MyAdapter vpAdapter;
//private ViewPagerAdapter vpAdapter;
private List<View> views;
private GridView attamGridView;
private TextView text;
private Button addattach;
// \u5e95\u90e8\u5c0f\u70b9\u56fe\u7247
private ImageView[] dots;

// \u8bb0\u5f55\u5f53\u524d\u9009\u4e2d\u4f4d\u7f6e
private int currentIndex;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
addattach = (Button) findViewById(R.id.addattachment);
addattach.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addattach();
vpAdapter.notifyDataSetChanged();
}
});
//addattach();
// \u521d\u59cb\u5316\u9875\u9762
initViews();

// \u521d\u59cb\u5316\u5e95\u90e8\u5c0f\u70b9
initDots();
}

private void initViews() {
LayoutInflater inflater = LayoutInflater.from(this);

views = new ArrayList<View>();
// \u521d\u59cb\u5316\u5f15\u5bfc\u56fe\u7247\u5217\u8868
views.add(inflater.inflate(R.layout.layout1, null));
views.add(inflater.inflate(R.layout.layout2, null));
views.add(inflater.inflate(R.layout.layout3, null));

// \u521d\u59cb\u5316Adapter
//vpAdapter = new ViewPagerAdapter(views,this);
vpAdapter = new MyAdapter();

vp = (ViewPager) findViewById(R.id.viewpager);
vp.setAdapter(vpAdapter);
// \u7ed1\u5b9a\u56de\u8c03
vp.setOnPageChangeListener(this);
}

private void initDots() {
LinearLayout group = (LinearLayout) findViewById(R.id.viewGroup);

dots = new ImageView[views.size()];

// \u5faa\u73af\u53d6\u5f97\u5c0f\u70b9\u56fe\u7247
for (int i = 0; i < views.size(); i++) {
/*dots[i] = (ImageView) ll.getChildAt(i);
dots[i].setEnabled(true);// \u90fd\u8bbe\u4e3a\u7070\u8272
*/ ImageView imageView = new ImageView(this);
imageView.setLayoutParams(new LayoutParams(10,10));
dots[i] = imageView;
if(i == 0){
dots[i].setBackgroundResource(R.drawable.page_indicator_focused);
}else{
dots[i].setBackgroundResource(R.drawable.page_indicator_unfocused);
}

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
layoutParams.leftMargin = 5;
layoutParams.rightMargin = 5;
group.addView(imageView, layoutParams);
}

currentIndex = 0;
dots[currentIndex].setEnabled(false);// \u8bbe\u7f6e\u4e3a\u767d\u8272\uff0c\u5373\u9009\u4e2d\u72b6\u6001
}

// \u5f53\u6ed1\u52a8\u72b6\u6001\u6539\u53d8\u65f6\u8c03\u7528
@Override
public void onPageScrollStateChanged(int arg0) {
}

// \u5f53\u5f53\u524d\u9875\u9762\u88ab\u6ed1\u52a8\u65f6\u8c03\u7528
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}

// \u5f53\u65b0\u7684\u9875\u9762\u88ab\u9009\u4e2d\u65f6\u8c03\u7528
@Override
public void onPageSelected(int arg0) {
// \u8bbe\u7f6e\u5e95\u90e8\u5c0f\u70b9\u9009\u4e2d\u72b6\u6001
//setCurrentDot(arg0);
setImageBackground(arg0 % 3);
}

public class MyAdapter extends PagerAdapter{

@Override
public int getCount() {
if (views != null) {
return views.size();
}
return 0;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
// \u9500\u6bc1arg1\u4f4d\u7f6e\u7684\u754c\u9762
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView(views.get(arg1));
}
/**
* \u8f7d\u5165\u56fe\u7247\u8fdb\u53bb\uff0c\u7528\u5f53\u524d\u7684position \u9664\u4ee5 \u56fe\u7247\u6570\u7ec4\u957f\u5ea6\u53d6\u4f59\u6570\u662f\u5173\u952e
*/
@Override
public Object instantiateItem(View arg0, int arg1) {
((ViewPager) arg0).addView(views.get(arg1), 0);
return views.get(arg1);
}
}
/**
* \u8bbe\u7f6e\u9009\u4e2d\u7684tip\u7684\u80cc\u666f
* @param selectItems
*/
private void setImageBackground(int selectItems){
for(int i=0; i<dots.length; i++){
if(i == selectItems){
dots[i].setBackgroundResource(R.drawable.page_indicator_focused);
}else{
dots[i].setBackgroundResource(R.drawable.page_indicator_unfocused);
}
}
}
public void addattach(){
LinearLayout layout = (LinearLayout) getLayoutInflater().inflate(R.layout.layout1, null);
text = (TextView) layout.findViewById(R.id.text);
text.setText("aaaa");
}

}


ViewPaper里面有3个layout,第一个layout里面有个textview,按照我的方法,改变不了那个textview的值,请问一下我哪里没写对呢,代码有点多,麻烦大家啦
...全文
616 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
doudousang1 2014-10-29
  • 打赏
  • 举报
回复
public class CopyOfViewPaperActivity extends Activity implements OnPageChangeListener {
	

		private ViewPager vp;
		private MyAdapter vpAdapter;
		//private ViewPagerAdapter vpAdapter;
		private List<View> views;
		private GridView attamGridView;
		private TextView text;
		private Button addattach;
		// \u5e95\u90e8\u5c0f\u70b9\u56fe\u7247
		private ImageView[] dots;

		// \u8bb0\u5f55\u5f53\u524d\u9009\u4e2d\u4f4d\u7f6e
		private int currentIndex;
		@Override
		protected void onCreate(Bundle savedInstanceState) {
			super.onCreate(savedInstanceState);
			setContentView(R.layout.main);
			addattach = (Button) findViewById(R.id.addattachment);
			addattach.setOnClickListener(new View.OnClickListener() {
				@Override
				public void onClick(View v) {
					addattach();
					vpAdapter.notifyDataSetChanged();
				}
			});
			//addattach();
			// \u521d\u59cb\u5316\u9875\u9762
			initViews();

			// \u521d\u59cb\u5316\u5e95\u90e8\u5c0f\u70b9
			initDots();
		}

		private void initViews() {
			LayoutInflater inflater = LayoutInflater.from(this);

			views = new ArrayList<View>();
			// \u521d\u59cb\u5316\u5f15\u5bfc\u56fe\u7247\u5217\u8868
			views.add(inflater.inflate(R.layout.layout1, null));
			views.add(inflater.inflate(R.layout.layout2, null));
			views.add(inflater.inflate(R.layout.layout3, null));

			// \u521d\u59cb\u5316Adapter
			//vpAdapter = new ViewPagerAdapter(views,this);
			vpAdapter = new MyAdapter();
			
			vp = (ViewPager) findViewById(R.id.viewpager);
			vp.setAdapter(vpAdapter);
			// \u7ed1\u5b9a\u56de\u8c03
			vp.setOnPageChangeListener(this);
		}

		private void initDots() {
			LinearLayout group = (LinearLayout) findViewById(R.id.viewGroup);

			dots = new ImageView[views.size()];

			// \u5faa\u73af\u53d6\u5f97\u5c0f\u70b9\u56fe\u7247
			for (int i = 0; i < views.size(); i++) {
				ImageView imageView = new ImageView(this);  
	            imageView.setLayoutParams(new LayoutParams(10,10));  
	            dots[i] = imageView;  
	            if(i == 0){  
	            	dots[i].setBackgroundResource(R.drawable.page_indicator_focused);  
	            }else{  
	            	dots[i].setBackgroundResource(R.drawable.page_indicator_unfocused);  
	            }  
	              
	            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,    
	                    LayoutParams.WRAP_CONTENT));  
	            layoutParams.leftMargin = 5;  
	            layoutParams.rightMargin = 5;  
	            group.addView(imageView, layoutParams);
			}

			currentIndex = 0;
			dots[currentIndex].setEnabled(false);// \u8bbe\u7f6e\u4e3a\u767d\u8272\uff0c\u5373\u9009\u4e2d\u72b6\u6001
		}

		// \u5f53\u6ed1\u52a8\u72b6\u6001\u6539\u53d8\u65f6\u8c03\u7528
		@Override
		public void onPageScrollStateChanged(int arg0) {
		}

		// \u5f53\u5f53\u524d\u9875\u9762\u88ab\u6ed1\u52a8\u65f6\u8c03\u7528
		@Override
		public void onPageScrolled(int arg0, float arg1, int arg2) {
		}

		// \u5f53\u65b0\u7684\u9875\u9762\u88ab\u9009\u4e2d\u65f6\u8c03\u7528
		@Override
		public void onPageSelected(int arg0) {
			// \u8bbe\u7f6e\u5e95\u90e8\u5c0f\u70b9\u9009\u4e2d\u72b6\u6001
			//setCurrentDot(arg0);
			 setImageBackground(arg0 % 3); 
		}
		
public class MyAdapter extends PagerAdapter{  
			  
	        @Override  
	        public int getCount() {  
	        	if (views != null) {
	    			return views.size();
	    		}
	    		return 0;
	        }  
	        @Override  
	        public boolean isViewFromObject(View arg0, Object arg1) {  
	            return arg0 == arg1;  
	        }  
	        // \u9500\u6bc1arg1\u4f4d\u7f6e\u7684\u754c\u9762
	    	@Override
	    	public void destroyItem(View arg0, int arg1, Object arg2) {
	    		((ViewPager) arg0).removeView(views.get(arg1));
	    	} 
	        /** 
	         * \u8f7d\u5165\u56fe\u7247\u8fdb\u53bb\uff0c\u7528\u5f53\u524d\u7684position \u9664\u4ee5 \u56fe\u7247\u6570\u7ec4\u957f\u5ea6\u53d6\u4f59\u6570\u662f\u5173\u952e 
	         */  
	        @Override  
	        public Object instantiateItem(View arg0, int arg1) {
	        	((ViewPager) arg0).addView(views.get(arg1), 0);
	    		return views.get(arg1);  
	        }  
	    }  
	    /** 
	     * \u8bbe\u7f6e\u9009\u4e2d\u7684tip\u7684\u80cc\u666f 
	     * @param selectItems 
	     */  
	    private void setImageBackground(int selectItems){  
	        for(int i=0; i<dots.length; i++){  
	            if(i == selectItems){  
	            	dots[i].setBackgroundResource(R.drawable.page_indicator_focused);  
	            }else{  
	            	dots[i].setBackgroundResource(R.drawable.page_indicator_unfocused);  
	            }  
	        }  
	    }  
	    public void addattach(){
	    	LinearLayout layout = (LinearLayout) getLayoutInflater().inflate(R.layout.layout1, null);
	    	text = (TextView) layout.findViewById(R.id.text);
	    	text.setText("aaaa");
	    }

}
刚才发的有点问题

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧