Adding views programmatically in Android

JahDymes

New Member
Is it possible to add views to a different layout than the one called in setContentView() in the OnCreate()?Im trying to use Zylincs ViewPager (found at http://www.zylinc.com/blog-reader/items/viewpager-page-indicator.html) and I have that part setup and working great.What this leaves me with is 4 layouts. 1 is main.xml, and the other three are main_pg0.xml, main_pg1.xml, and main_pg3.xmlThe three pages are where the content of each "page" is where main.xml contains the page viewer.In the onCreate im using setContentView(main.xml).What im trying to do now is be able to add textViews programically to some of the pages.What I have right now is:\[code\]LayoutInflater factory = getLayoutInflater();View layout = factory.inflate(R.layout.main_pg0, null);View linearLayout = layout.findViewById(R.id.linearLayout);TextView valueTV = new TextView(this);valueTV.setText("hallo hallo");valueTV.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));((LinearLayout) linearLayout).addView(valueTV);\[/code\]This is as far as I've been able to get, which does not add the textview at all.----EDIT----Hoping to clarify a little more what im trying to doHeres my codeMain.java\[code\]public class Main extends FragmentActivity implements PageInfoProvider { public GlobalVars globalVars; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); globalVars = (GlobalVars) getApplicationContext(); MyPagerAdapter adapter = new MyPagerAdapter(); ViewPager myPager = (ViewPager) findViewById(R.id.viewpager); myPager.setAdapter(adapter); myPager.setCurrentItem(0); ViewPagerIndicator indicator = (ViewPagerIndicator) findViewById(R.id.indicator); myPager.setOnPageChangeListener(indicator); indicator.init(0, adapter.getCount(), this); Resources res = getResources(); Drawable prev = res.getDrawable(R.drawable.indicator_prev_arrow); Drawable next = res.getDrawable(R.drawable.indicator_next_arrow); indicator.setArrows(prev, next); } private class MyPagerAdapter extends PagerAdapter { public int getCount() { return 3; } public Object instantiateItem(View collection, int position) { LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); int resId = 0; switch (position) { case 0: resId = R.layout.main_pg0; LoadVehicles(); break; case 1: resId = R.layout.main_pg1; break; case 2: resId = R.layout.main_pg2; break; } View view = inflater.inflate(resId, null); ((ViewPager) collection).addView(view, 0); return view; } @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView((View) arg2); } @Override public void finishUpdate(View arg0) { // TODO Auto-generated method stub } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == ((View) arg1); } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { // TODO Auto-generated method stub } @Override public Parcelable saveState() { // TODO Auto-generated method stub return null; } @Override public void startUpdate(View arg0) { // TODO Auto-generated method stub } } public String getTitle(int position) { String title = "--Untitled--"; switch (position) { case 0: title = "Page 0"; break; case 1: title = "Page 1"; break; case 2: title = "Page 2"; break; } return title; }}\[/code\]main.xml\[code\]<?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" > <com.zylinc.view.ViewPagerIndicator android:id="@+id/indicator" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#EAEAEA" android:paddingBottom="8dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="8dp" /> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ffeaeaea" > <View android:layout_width="fill_parent" android:layout_height="1dp" android:layout_alignBottom="@+id/current" android:background="#C5C5C5" /> <ImageView android:id="@+id/current" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerInParent="true" android:src="http://stackoverflow.com/questions/10660111/@drawable/indicator_current" /> </RelativeLayout> <android.support.v4.view.ViewPager android:id="@+android:id/viewpager" android:layout_width="fill_parent" android:layout_height="fill_parent" /></LinearLayout>\[/code\]main_pg0.xml\[code\]<?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:background="#FFFFFF" android:orientation="vertical" android:id="@+id/linearLayout" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:text="main_pg0.xml" android:textColor="#0C0C0C" android:textSize="18sp" /></LinearLayout>\[/code\]What im trying to do is add a text view programmatically to main_pg0.xml ONLY, while leaving the other 2 pages alone
 
Back
Top