Android 제어 보기

4455 단어
만약 에 두 개의 XML 레이아웃 파일 이 있다 고 가정 합 니 다. test 1. xml 와 test 2. xml 입 니 다. 이 두 레이아웃 파일 의 루트 노드 는 모두 < LinearLayout > 입 니 다. 아래 코드 는 test 2. xml 파일 의 LinearLayout 대상 을 얻 었 습 니 다.
이 대상 을 test 1. xml 파일 의 < LinearLayout > 탭 의 하위 노드 로 test 1. xml LinearLayout 대상 에 추가 합 니 다.
//	  test1.xml  LinearLayout  
LinearLayout testLinearLayout1 = (LinearLayout)getLayoutInflater().inflate(R.layout.test1, null);
//	 test1.xml  LinearLayout          
setContentView(testLinearLayout1);
//	  test2.xml  LinearLayout  ,        test1.xml LinearLayout   
LinearLayout testLinearLayout2 = (LinearLayout)getLayoutInflater().inflate(R.layout.test2, testLinearLayout1);

레이아웃 보기 에 보기 대상 을 추가 할 때 다음 두 가 지 를 주의해 야 합 니 다.
setContentView 방법 을 사용 하여 용기 보 기 를 현재 보기 로 설정 한 후 용기 보기 에 새로운 보 기 를 추가 하거나 다른 작업 을 하려 면 setContentView 방법의 매개 변수 값 은 용기 보기 대상 을 직접 사용 해 야 합 니 다. 이 는 용기 보기 대상 에 새로운 보 기 를 추가 할 수 있 기 때 문 입 니 다.
하나의 보 기 는 하나의 부모 보기 만 있 을 수 있 습 니 다. 즉, 하나의 보 기 는 하나의 용기 보기 에 만 포 함 될 수 있 습 니 다.따라서 용기 보기에 다른 보 기 를 추가 할 때 XML 레이아웃 파일 에 루트 노드 가 아 닌 보기 대상 을 다른 용기 보기에 추가 할 수 없습니다.예 를 들 어 앞의 예 에서 testLinearLayout 2. findViewById (R. id. testView 2) 를 사용 하여 얻 은 TextView 대상 을 testLinearLayout 1 대상 에 추가 할 수 없습니다. 이것 은 이 TextView 대상 이 test2. xml 의 < LinearLayout > 태그 에 속 하기 때문에 test1. xml 의 < LinearLayout > 태그 에 속 할 수 없습니다.
다음은 실례 입 니 다.
main. xml 파일
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TextView 
	    android:id="@+id/textview1" 
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:text="@string/textview1"/>
	<Button 
	    android:id="@+id/button1"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:text="@string/button1"/>
</LinearLayout>

test. xml 파일
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TextView 
        android:id="@+id/textview1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/textview2"
        />      
</LinearLayout>

Main. java 파일
package com.mmc.viewobject;

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;

public class Main extends Activity implements OnClickListener
{
	private TextView textView1;
	private Button button1;
	@Override
	public void onClick(View v){
		int value = textView1.getGravity() & 0x07;
		if (value == Gravity.LEFT) 
			textView1.setGravity(Gravity.CENTER_HORIZONTAL);
		else if (value == Gravity.CENTER_HORIZONTAL)
			textView1.setGravity(Gravity.RIGHT);
		else if (value == Gravity.RIGHT)
			textView1.setGravity(Gravity.LEFT);
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		//  main.xml  LinearLayout  
		LinearLayout mainLinearLayout = (LinearLayout)getLayoutInflater().inflate(R.layout.main, null);
		//         
		setContentView(mainLinearLayout);
		textView1 = (TextView)findViewById(R.id.textview1);
		button1 = (Button)findViewById(R.id.button1);
		textView1.setText("   TextView");
		//               
		button1.setOnClickListener(this);
		//  test.xml  LinearLayout  
		LinearLayout testLinearLayout = (LinearLayout)getLayoutInflater().inflate(R.layout.test, mainLinearLayout);
		//        ,   inflate    2      null
		//mainLinearLayout.addView(testLinearLayout);
		//	        
		EditText editText = new EditText(this);
		editText.setSingleLine(false);
		editText.setGravity(Gravity.LEFT);
		mainLinearLayout.addView(editText, new ViewGroup.LayoutParams(
				ViewGroup.LayoutParams.FILL_PARENT, 
				ViewGroup.LayoutParams.FILL_PARENT));
	}	
}

좋은 웹페이지 즐겨찾기