예제1) 버튼을 누르면 EditText의 Text가 변경되게 하기
Java 소스 코드
package com.inhatc.mobile_programming_practice;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TabHost;
import android.widget.TextView;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class MainActivity extends AppCompatActivity {
private Button btnCall;
EditText ObjET;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
btnCall = (Button)findViewById(R.id.button);
ObjET = (EditText)findViewById(R.id.editTextText);
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
ObjET.setText("통화중...");
}
});
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}
주요 표인트
버튼에 이벤트를 달아 주기
Button.setOnClickListener(View.OnClickListener()
{
@Override
public void onClick(View view) {
....
}
});
예제 2)
Java 소스코드
package com.inhatc.mobile_programming_practice;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TabHost;
import android.widget.TextView;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button btnCall;
EditText ObjET;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
btnCall = (Button)findViewById(R.id.button);
ObjET = (EditText)findViewById(R.id.editTextText);
btnCall.setOnClickListener(this);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
@Override
public void onClick(View view)
{
String strPhoneNo = ObjET.getText().toString();
if(view == btnCall)
{
if(!strPhoneNo.isEmpty())
{
Intent dialIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel: " + ObjET.getText()));
dialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialIntent);
}
else{
ObjET.setText("Input Phone Number...");
}
}
}
}
결과)
핵심 포인트
public class MainActiviry extends AppCompatActivity implements View.OnClickListener
부모 클래스로부터 메소드를 재정의 하기위한 implements
Intent dialIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel: ") + EditText.getText())
uri 전환 시 콜론(:)을 넣지 않으면 양식에 맞지 않아 에러가 난다!
dialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialIntent)
예제 3) 바로 전화로 연결되게 java코드 변경하기
ACTION_DIAL -> ACTION_CALL
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Mobile_Programming_Practice"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
결과)
핵심 포인트)
Intent 형 dialIntent를 DIAL_CALL로 변경
AndroidManifast.xml 에
<uses-features
android:name="android.hardware.telephony"
android:require="false />
<uses-permission android:name="android.permission.CALL_PHONE"/>
추가 후
앱 설정에서 권한 부여
예제 4)
java 소스 코드)
package com.inhatc.mobile_programming_practice;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TabHost;
import android.widget.TextView;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
TextView objTV;
View objLayout;
RadioButton rdoScreenSet;
RadioButton rdoScreenReset;
CheckBox chkColor_R;
CheckBox chkColor_G;
CheckBox chkColor_B;
int bkColor = 0xFFFFFFFF;
String strData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
objTV = (TextView)findViewById(R.id.textView);
objLayout = findViewById(R.id.main);
rdoScreenSet = (RadioButton)findViewById(R.id.radioButton1);
rdoScreenReset = (RadioButton)findViewById(R.id.radioButton2);
rdoScreenSet.setOnClickListener(this);
rdoScreenReset.setOnClickListener(this);
chkColor_R = (CheckBox)findViewById(R.id.checkBox1);
chkColor_G = (CheckBox)findViewById(R.id.checkBox2);
chkColor_B = (CheckBox)findViewById(R.id.checkBox3);
chkColor_R.setOnClickListener(this);
chkColor_G.setOnClickListener(this);
chkColor_B.setOnClickListener(this);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
@Override
public void onClick(View view)
{
bkColor = 0xFF000000;
if (rdoScreenSet.isChecked())
{
strData = "Color Setting Mode : " + rdoScreenSet.getText().toString();
if (chkColor_R.isChecked()) bkColor |= 0xFFFF0000;
if (chkColor_G.isChecked()) bkColor |= 0xFF00FF00;
if (chkColor_B.isChecked()) bkColor |= 0xFF0000FF;
}
else{
strData = "Color Setting Mode : " + rdoScreenReset.getText().toString();
chkColor_R.setChecked(false);
chkColor_G.setChecked(false);
chkColor_B.setChecked(false);
if (chkColor_R.isPressed()||chkColor_G.isPressed()||chkColor_B.isPressed())
strData = "Setting the color setting mode to Set.";
}
objLayout.setBackgroundColor(bkColor);
objTV.setTextColor(Color.GRAY);
objTV.setText(strData);
}
}
결과)
핵심 포인트
라디오 버튼과 체크박스 모두 isChecked()로 선택 여부를 확인할 수 있다!
setChecked() 로 선택의 가능 여부 또한 정할 수 있으며,
isPressed() 로 클릭되었는지 확인할 수 있다
'모바일 프로그래밍 공부' 카테고리의 다른 글
모바일 프로그래밍 7주차 Graphic 2D (0) | 2025.04.14 |
---|---|
모바일 프로그래밍 6주차 ( Intent ) (0) | 2025.04.09 |
모바일 프로그래밍 4-2 Layout (0) | 2025.04.01 |
모바일 프로그래밍 3주차 (0) | 2025.03.24 |
모바일 프로그래밍 1주차 (0) | 2025.03.17 |