記錄

TextView를 Visible, Invisible 변화 본문

카테고리 없음

TextView를 Visible, Invisible 변화

surhommejk 2017. 11. 21. 02:48




public class Practice extends AppCompatActivity implements View.OnClickListener {

Button VisibleButton;
Button InvisibleButton;
TextView TargetText;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_practice);

VisibleButton = (Button) findViewById(R.id.VisibleButton);
InvisibleButton = (Button) findViewById(R.id.InvisibleButton);
TargetText = (TextView) findViewById(R.id.TargetText);

VisibleButton.setOnClickListener(this);
InvisibleButton.setOnClickListener(this);
}

public void onClick(View v) {

if (v == VisibleButton) {
TargetText.setVisibility(View.VISIBLE);
} else if (v == InvisibleButton) {
TargetText.setVisibility(View.INVISIBLE);
}
}

} // class end



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<Button
android:id="@+id/VisibleButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Visible Button"/>

<TextView
android:id="@+id/TargetText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello world"
android:padding="16dp"
android:background="#00ff22"
android:visibility="invisible"
/>

<Button
android:id="@+id/InvisibleButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Invisible Button"
/>

</LinearLayout>


<API>


- View.setOnClickListener


- View.setVisibility



<일지>


-     자바 파일에서 implements를 안해줘서 버튼 이벤트처리에서 자꾸 에러가 났음

setOnClickLister로 이벤트화 해주었기 때문에 OnClickListener를 implements 해주어야 한다


-     onCreate()는 엑티비티가 실행되면 자동으로 호출되는 함수라서 버튼 둘, 텍스트 뷰 하나의

아이디 연결과 이벤트처리는 onCreate()안에서 이뤄지고 있는 것


<그 외 사항>


컴포넌트와 일반 클래스

컴포넌트는 클래스를 구성하는 구성단위이며 물리적 단위로는 클래스를 사용한다. 하지만 클래스라고 무조건 컴포넌트는 아니고 생명주기를 시스템이 관리하면 컴포넌트이고 그 외 클래스는 일반 클래스라고 한다. 즉, 클래스는 일반 클래스와 컴포넌트로 나뉜다. 일반 클래스는 개발자 코드로 생명주기를 관리한다. 생명주기를 관리한다는 것은 별다른 것이 아니고 필요할 때 만들어서 쓰고 필요 없을 때는 null 대입해서 소멸시키는 것을 의미한다. 반면 컴포넌트는 개발자 코드로 생성해서 사용할 수 없고 인텐트(Intent)를 매개로 결합하지 않은 상태에서 독립적으로 실행하는 구조이다.


R.java

작업을 하다 보면 수많은 리소스가 만들어지는데 시스템이 이를 구별하기 위해서 리소스가 만들어질 때마다 int형 변수를 자동으로 만들어서 R.java 파일에 할당하게 된다. 이는 폴더 보기 옵션을 바꿔서 보면 test 폴더 내에서 확인할 수 있다. 그래서 findViewById를 할 때에 매개변수로 R.id.~ 를 하는 것이다.


Comments