-메인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"
 >


    <Button
        android:id="@+id/btnMain"
        android:layout_width="151dp"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginStart="127dp"
        android:layout_marginLeft="127dp"
        android:layout_marginTop="62dp"
        android:layout_marginEnd="133dp"
        android:layout_marginRight="133dp"
        android:text="새화면띄우기" />

    <TextView
        android:id="@+id/tvMain"
        android:layout_width="171dp"
        android:layout_height="135dp"
        android:layout_below="@+id/btnMain"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginStart="119dp"
        android:layout_marginLeft="119dp"
        android:layout_marginTop="42dp"
        android:layout_marginEnd="121dp"
        android:layout_marginRight="121dp"
        android:text="TextView" />
</RelativeLayout>

-메인자바-

package com.example.my10_intentresult;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    Button btnMain;
    TextView tvMain;
    public final int  REQUEST_CODE = 1004;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tvMain=findViewById(R.id.tvMain);
        btnMain=findViewById(R.id.btnMain);

        btnMain.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                PersonDto person1 = new PersonDto("css",3333);

                Intent intent = new Intent(MainActivity.this,Sub1Activity.class);
                intent.putExtra("id","kim");
                intent.putExtra("pw",1234);
                intent.putExtra("person1",person1);
                startActivityForResult(intent,REQUEST_CODE);//결과를 받겠다


            }
        });
    }

    // 데이터 받기

    @Override   //서브1에서 받는 부분
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        if (requestCode==REQUEST_CODE){     //1004이면
            if(data !=null){
             String key = data.getStringExtra("key");
             tvMain.setText(key);
            }
        }

        super.onActivityResult(requestCode, resultCode, data);
    }
}

-서브xml-

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Sub1Activity">

    <Button
        android:id="@+id/btnSub1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginStart="160dp"
        android:layout_marginLeft="160dp"
        android:layout_marginTop="76dp"
        android:layout_marginEnd="163dp"
        android:layout_marginRight="163dp"
        android:text="메인으로 돌아가기" />

    <TextView
        android:id="@+id/tvSub1"
        android:layout_width="195dp"
        android:layout_height="90dp"
        android:layout_below="@+id/btnSub1"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginStart="107dp"
        android:layout_marginLeft="107dp"
        android:layout_marginTop="87dp"
        android:layout_marginEnd="109dp"
        android:layout_marginRight="109dp"
        android:text="TextView" />
</RelativeLayout>

-서브자바-

package com.example.my10_intentresult;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.nfc.Tag;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Sub1Activity extends AppCompatActivity {
    private static final String TAG = "Sub1Activity";
    Button btnSub1;
    TextView tvSub1;
    Intent intent;

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


        btnSub1= findViewById(R.id.btnSub1);
        tvSub1 = findViewById(R.id.tvSub1);



        //데이터  받는 곳
        intent = getIntent();
        
        String id=intent.getStringExtra("id");
        int pw = intent.getIntExtra("pw",0); //INT값은 기본값을 주어야 한다.

        PersonDto person1 = (PersonDto) intent.getSerializableExtra("person1");  //serializable로 받음
        Log.d(TAG, "onCreate: id : "+id);
        Log.d(TAG, "onCreate: pw : "+pw);   //로그에는 int형을 단독으로 쓰지 못한다.

        tvSub1.setText("받은값은 : "+id+", "+pw);
        tvSub1.append("\nPerson1 : "+person1.getId()+", "+person1.getPw());
       // tvSub1.setText(tvSub1.getText()+"\nPerson1 : "+person1.getId()+", "+person1.getPw());


        //메인에 데이터 보내기
        btnSub1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent reintent = new Intent();
                reintent.putExtra("key",tvSub1.getText().toString()+" ㅋㅋㅋ");
                setResult(RESULT_OK,reintent); //메인에 결과를 보냄
                finish();   //엑티비티 종료
            }
        });

    }
}

'For developer > Android' 카테고리의 다른 글

(Android)my10_intentresult  (0) 2020.05.21
(my09_layoutinflate)인플레이트  (0) 2020.05.21
(Android)공모전 앱 제작(~ing)  (0) 2020.05.17
(Android)inflate  (0) 2020.05.15
(Android)그라디언트 ,finger_drawable  (0) 2020.05.15

1.다음 카카오 hash key값 구하기

https://raon-studio.tistory.com/4

 

[Android/안드로이드] 자바 코드로 hask key 가져오기(get hash key in runtime)

카카오, 페이스북, 네이버 등등 로그인 API나 다른 여러 API를 쓸 때 해당 서비스를 사용하려면 앱에 signing한 keystore의 Hash key를 등록해야 하는 경우가 있다. 보통 그런 플랫폼의 경우 입력창 근처��

raon-studio.tistory.com

https://apis.map.kakao.com/android/guide/#step2

https://webnautes.tistory.com/1319

 

다음(카카오) 지도 안드로이드 API 사용하는 방법 & 현재 위치 표시

다음(카카오) 지도를 안드로이드에서 사용하기 위해 필요한 작업과 지도에 현재 위치를 표시하는 예제를 포함하고 있습니다. . 최초 작성 2019. 3. 6 최종 작성 2019. 9. 26 준비 작업부터 앱 실행까지

webnautes.tistory.com

You must set MapEnginePlatformAbstraction오류

https://devtalk.kakao.com/t/you-must-set-mapengineplatformabstraction/50723

 

Kakao DevTalk_

카카오 데브톡. 카카오 플랫폼 서비스 관련 질문 및 답변을 올리는 개발자 커뮤니티 사이트입니다.

devtalk.kakao.com

-카카오 지도 로고만 보이고 지도가 안보일 때 -

 

https://devtalk.kakao.com/t/api/80825/5

'For developer > Android' 카테고리의 다른 글

(my09_layoutinflate)인플레이트  (0) 2020.05.21
(Andorid)intentresult  (0) 2020.05.18
(Android)inflate  (0) 2020.05.15
(Android)그라디언트 ,finger_drawable  (0) 2020.05.15
(Android)setImageResource,src변경  (0) 2020.05.14

Res->layout->new->xml->layout xml file

package com.example.my09_layoutinflate;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

public class MainActivity extends AppCompatActivity {

    Button btnMain ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnMain = findViewById(R.id.btnMain);
        btnMain.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LinearLayout linear = findViewById(R.id.linear);
                RelativeLayout relative = findViewById(R.id.relative);

                LayoutInflater inflater =
                        (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                inflater.inflate(R.layout.sub1_layout,linear,true);
                inflater.inflate(R.layout.sub2_layout,relative,true);

            }
        });
    }
}

 

 

getSystemService:안드로이드가 제공하는 메소드

LayoutInflater inflater =
                        (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

 

RES->drawable->마오->new->drawable resource file 생성

 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#4CAF50"
        android:centerColor="#CD1F1F"
        android:endColor="#1E37C6"
        android:angle="90"
        android:centerY="0.5"/>

    <corners android:radius="10dp"></corners>
</shape>

-angle-

0도: 좌에서 우로

90도 : 아래에서 위로

180도: 우에서 좌로

270도: 위에서 아래로

 

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/finger_pressed"/>

    <item android:drawable="@drawable/finger"/>

</selector



<item android:state_pressed="true"
android:drawable="@drawable/finger_pressed"/>

 

눌렀을 때 pressed 이미지 출력
<item android:drawable="@drawable/finger"/>

아닐 때 그냥 finger 출력

 

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <size android:width="200dp" android:height="120dp"/>
    <stroke android:width="1dp" android:color="#0000ff"/>
    <solid android:color="#00ff00"/>
    <padding android:bottom="1dp"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="rectangle">
            <size android:width="200dp" android:height="100dp"/>
            <stroke android:width="1dp" android:color="#FF0157"/>
            <solid android:color="#ffffff"/>
        </shape>
    </item>

    <item android:top="2dp" android:bottom="2dp"
            android:right="2dp" android:left="2dp">

            <shape android:shape="rectangle">
                <stroke android:width="1dp" android:color="#00ff00"/>

            </shape>
    </item>

    <item android:top="4dp" android:bottom="4dp"
        android:right="4dp" android:left="4dp">

        <shape android:shape="rectangle">
            <stroke android:width="1dp" android:color="#0000ff"/>

        </shape>
    </item>

</layer-list>

 

imageView.setImageResource(R.drawable.image02);

imageView id 에 해당하는 요소의 src를 변경할 때 사용

package com.example.my04_framelayout;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    Button btnChange;
    ImageView imageView1,imageView2,imageView3;
    int selIdx=2;

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

        btnChange = findViewById(R.id.btnChange);

        imageView1=findViewById(R.id.imageView1);
        imageView2=findViewById(R.id.imageView2);
        imageView3=findViewById(R.id.imageView3);

        imageView1.setVisibility(View.VISIBLE);
        imageView2.setVisibility(View.GONE);
        imageView3.setVisibility(View.GONE);

        btnChange.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(selIdx==1){
                    imageView1.setVisibility(View.VISIBLE);
                    imageView2.setVisibility(View.GONE);
                    imageView3.setVisibility(View.GONE);
                    selIdx=2;
                    Toast.makeText(MainActivity.this, "1번 선택됨", Toast.LENGTH_SHORT).show();
                }else if(selIdx==2){
                    imageView1.setVisibility(View.GONE);
                    imageView2.setVisibility(View.VISIBLE);
                    imageView3.setVisibility(View.GONE);
                    selIdx=3;
                    Toast.makeText(MainActivity.this, "2번 선택됨", Toast.LENGTH_SHORT).show();
                }else if(selIdx==3){
                    imageView1.setVisibility(View.GONE);
                    imageView2.setVisibility(View.GONE);
                    imageView3.setVisibility(View.VISIBLE);
                    selIdx=1;
                    Toast.makeText(MainActivity.this, "3번 선택됨", Toast.LENGTH_SHORT).show();
                }

            }
        });
    }
}

+ Recent posts