본문 바로가기
App/Android Studio

Android Studio - xml과 자바

by 코젼 2022. 8. 2.
728x90
반응형

2022-08-02(31일차)


◾ 새로운 Module을 생성한다.

◾ id속성을 이용하여 id를 지정한다.

id 값 지정

◾ findViewById로 id속성을 가져올 수 있다.

◾ setText()를 통해 객체 내부의 text 속성을 변경할 수 있다.

◾ 디버깅

str에 "hello world!"가 저장된 것을 확인할 수 있다.


📃 getText(), setText() 사용 예제

layout를 바꿔준다.

📝test.xml

<?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"
    android:padding="20dp">

    <TextView
        android:id="@+id/tv_01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="50dp"
        android:background="@color/purple_200"
        android:text="hello"
        android:textSize="50dp" />

    <TextView
        android:id="@+id/tv_02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@color/purple_200"
        android:text="world"
        android:textSize="50dp" />

</LinearLayout>

📝MainActivity.java

package com.example.javaxml_test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);

        TextView tv = findViewById(R.id.tv_01);
        String str = (String)tv.getText();

        TextView tv2 = findViewById(R.id.tv_02);
        tv2.setText(str);
    }
}

💡 setVisibility(), getVisibility()

◾ View 클래스 내에 VISIBLE이 상수로 정의되어 있다.

◾ Visibility가 INVISIBLE이면 VISIBLE로 바꾼다.

📝MainActivity.java

package com.example.javaxml_test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);

        TextView tv = findViewById(R.id.tv_02);
        if(tv.getVisibility()==View.INVISIBLE) {
            tv.setVisibility(View.VISIBLE);
        }
    }
}

📃 getVisibility(), setVisibility() 사용 예제

◾ hello만 보이고 world는 안 보이는 것을 반대로, hello는 안 보이게 하고 world는 보이게 바꾼다.

xml
실행화면

📝MainActivity.java

package com.example.javaxml_test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);

        TextView tv = findViewById(R.id.tv_01);
        if (tv.getVisibility() == View.INVISIBLE) {
            tv.setVisibility(View.VISIBLE);
        } else {
            tv.setVisibility(View.INVISIBLE);
        }

        TextView tv2 = findViewById(R.id.tv_02);
        if (tv2.getVisibility() == View.INVISIBLE) {
            tv2.setVisibility(View.VISIBLE);
        } else {
            tv.setVisibility(View.INVISIBLE);
        }
    }
}

📝test.xml

<?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"
    android:padding="20dp">

    <TextView
        android:id="@+id/tv_01"
        android:visibility="visible"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="50dp"
        android:background="@color/purple_200"
        android:text="hello"
        android:textSize="50dp" />

    <TextView
        android:id="@+id/tv_02"
        android:visibility="invisible"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@color/purple_200"
        android:text="world"
        android:textSize="50dp" />

</LinearLayout>

📝MainActivity.java

package com.example.javaxml_test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);

        TextView tv = findViewById(R.id.tv_01);
        if (tv.getVisibility() == View.VISIBLE) {
            {
                tv.setVisibility(View.INVISIBLE);
            }

            TextView tv2 = findViewById(R.id.tv_02);
            if (tv2.getVisibility() == View.INVISIBLE) {
                tv2.setVisibility(View.VISIBLE);
            }
        }
    }
}
728x90
반응형

댓글