728x90
반응형
📃버튼으로 텍스트 변경하기
◾ 다음과 같이 화면을 구성하고 버튼을 눌러 텍스트뷰의 텍스트를 "버튼 눌림"으로 변경해본다.
📝layout.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="15dp">
<Button
android:id="@+id/btn_change"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:text="CHANGE"
android:textSize="20dp" />
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#472781"
android:gravity="center"
android:text="텍스트뷰"
android:textColor="@color/white"
android:textSize="30dp" />
</LinearLayout>
📝MainActivity.java
package com.example.test01;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
Button btn = findViewById(R.id.btn_change);
btn.setOnClickListener(lis);
}
View.OnClickListener lis = new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView t = findViewById(R.id.tv);
t.setText("버튼 눌림");
}
};
}
📃SHOW 버튼을 누르면 텍스트뷰가 숨겨졌다 보여졌다 하기
📝layout.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="15dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_change"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:text="CHANGE"
android:textSize="20dp" />
<Button
android:id="@+id/btn_show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:layout_marginLeft="10dp"
android:text="SHOW"
android:textSize="20dp" />
</LinearLayout>
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#472781"
android:gravity="center"
android:text="텍스트뷰"
android:textColor="@color/white"
android:textSize="30dp" />
</LinearLayout>
📝MainActivity.java
package com.example.test01;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
Button btn = findViewById(R.id.btn_change);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView t = findViewById(R.id.tv);
t.setText("버튼 눌림");
}
});
Button btn2 = findViewById(R.id.btn_show);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView t = findViewById(R.id.tv);
if(t.getVisibility()==View.VISIBLE) {
t.setVisibility(View.INVISIBLE);
}
else {
t.setVisibility(View.VISIBLE);
}
}
});
}
}
📃버튼으로 에디트텍스트에 입력 값을 텍스트뷰에 나열하기
◾ append() 이용하기
◾ 문자열로 바꾸고 싶을 때는 .toString() 사용하기
📝layout2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="이름"
android:textSize="30dp"
android:id="@+id/tv_name"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/tv_name"
android:layout_alignBaseline="@id/tv_name"
android:id="@+id/et_input"/>
<Button
android:id="@+id/btn_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/et_input"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dp"
android:text="OK" />
<Button
android:id="@+id/btn_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/et_input"
android:layout_toLeftOf="@id/btn_ok"
android:text="Cancel" />
<TextView
android:id="@+id/tv_add"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/btn_cancel"
android:layout_marginTop="5dp"
android:background="#c7f9c4" />
</RelativeLayout>
📝MainActivity.java
package com.example.test01;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout2);
Button cancel = findViewById(R.id.btn_cancel);
Button ok = findViewById(R.id.btn_ok);
ok.setOnClickListener(lis);
cancel.setOnClickListener(lis2);
}
View.OnClickListener lis = new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView t = findViewById(R.id.tv_add);
EditText et = findViewById(R.id.et_input);
String str = et.getText().toString();
t.append(str + "\n");
}
};
View.OnClickListener lis2 = new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView t = findViewById(R.id.tv_add);
t.setText("");
}
};
}
💁♀️Listener를 더 간단하게 수정할 수 있다.
◾ View 객체 안에 getId()로 접근해서 id별로 조건문을 주어 행동을 나눌 수 있다.
package com.example.test01;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout2);
Button cancel = findViewById(R.id.btn_cancel);
Button ok = findViewById(R.id.btn_ok);
ok.setOnClickListener(lis);
cancel.setOnClickListener(lis);
}
View.OnClickListener lis = new View.OnClickListener() {
@Override
public void onClick(View view) {
int id = view.getId();
EditText et = findViewById(R.id.et_input);
TextView t = findViewById(R.id.tv_add);
if(id == R.id.btn_ok) {
String str = et.getText().toString();
t.append(str + "\n");
et.setText("");
}
else if(id == R.id.btn_cancel) {
t.setText("");
}
}
};
}
📃버튼 누른대로 버튼에 있는 값을 TextView에 출력되게 하기
📝layout.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">
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="3"
android:orientation="horizontal"
android:useDefaultMargins="true">
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:onClick="onClick"
android:textSize="20sp" />
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:onClick="onClick"
android:textSize="20sp" />
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"
android:onClick="onClick"
android:textSize="20sp" />
<Button
android:id="@+id/btn4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4"
android:onClick="onClick"
android:textSize="20sp" />
<Button
android:id="@+id/btn5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="5"
android:onClick="onClick"
android:textSize="20sp" />
<Button
android:id="@+id/btn6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6"
android:onClick="onClick"
android:textSize="20sp" />
<Button
android:id="@+id/btn7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="7"
android:onClick="onClick"
android:textSize="20sp" />
<Button
android:id="@+id/btn8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8"
android:onClick="onClick"
android:textSize="20sp" />
<Button
android:id="@+id/btn9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="9"
android:textSize="20sp" />
<Button
android:id="@+id/btn_star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*"
android:onClick="onClick"
android:textSize="20sp" />
<Button
android:id="@+id/btn0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:onClick="onClick"
android:textSize="20sp" />
<Button
android:id="@+id/btn_sharp"
android:onClick="onClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#"
android:textSize="20sp" />
</GridLayout>
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="50sp" />
</LinearLayout>
📝MainActivity.java
⭐View 객체가 Button 객체에 있는 getText()를 사용하기 위해서는 형변환을 해야한다.
-- 부모 객체는 자식 객체의 함수를 형변환없이 사용할 수 없다.
package com.example.test02;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView t;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
t = findViewById(R.id.tv);
}
public void onClick(View v) {
String str = ((Button)v).getText().toString();
t.setText(str);
}
}
728x90
반응형
'App > Android Studio' 카테고리의 다른 글
Android Studio - 이벤트 리스너 활용 문제 (0) | 2022.08.04 |
---|---|
Android Studio - OnTouchListener 이벤트 (0) | 2022.08.03 |
Android Studio - OnClickListener 이벤트 리스너 (0) | 2022.08.03 |
Android Studio - 로또 번호 발생기 (0) | 2022.08.02 |
Android Studio - 메시지 출력[Log, Toast] (0) | 2022.08.02 |
댓글