본문 바로가기
컴퓨터 공학/Android

[ 안드로이드 프로그래밍 ] 토스트 메시지 위치 변경하기

by hahehohoo 2020. 4. 8.
반응형

안드로이드 스튜디오 프로그래밍_토스트 메시지 위치 변경하기_예제포함

 

 

 

 

예제

 ■ xml 파일

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@color/colorAccent"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/editView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="X위치" />

    <EditText
        android:id="@+id/editView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="Y위치" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="토스트 메세지 띄우기 " />

</LinearLayout>

- 원하는 위치 값(X, Y)을 입력받기 위해 EditText를 사용합니다.

- X,  Y위치 값을 받는 칸임을 보여주기 위해 hint의 속성을 'X위치','Y위치'라고 해줍니다.  

- 띄우기 버튼을 눌렀을 때 토스트 메세지를 띄웁니다. 

 

 ■ java 파일

package com.example.practicecode;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Button button;
    EditText editText,editText2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editText = findViewById(R.id.editView);
        editText2 = findViewById(R.id.editView2);

        button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                makeMsg();
            }
        });
    }

    private void makeMsg() {
        Toast toast =Toast.makeText(this,"메세지입니다. ", Toast.LENGTH_LONG);
        int xOffset = Integer.parseInt(editText.getText().toString());
        int yOffset = Integer.parseInt(editText2.getText().toString());

        toast.setGravity(Gravity.TOP|Gravity.TOP, xOffset, yOffset);
        toast.show();
    }
}

 

- EditText, Button 컴포넌트를 정의해줍니다. 

- findViewById로 연결해줍니다.

- 버튼을 클릭하면 메세지를 띄우는 makeMsg() 메서드를 실행하도록 합니다.

 

makeMsg()

- setGravity의 파라미터를  (시작점, X값, Y값)로 넣습니다. 

- (0,0)을 기준점으로 하기 위해 시작점은 Gravity.TOP | Gravity.TOP로 합니다. 

-  editText, editText2에서 받은 데이터를 각각 X, Y 좌표값으로 받습니다. 

 

 

 

 

 

 

 

 

반응형


댓글