jongviet

Mar 10, 2021 - Java 19일차 본문

Java

Mar 10, 2021 - Java 19일차

jongviet 2021. 3. 10. 22:04

#Java

 

*3월10일

-가정을 계속하면서 하나하나 만들어보게!! 뛰어난사람이 될 수 있다.


1)지역 변수 -> 전역변수화

-로컬로 선언된변수가 new안에 들어가면 final 만들어야지 인식됨!!

 

Class

int a; //클래스단위
String kor;
String eng;
int score;
String input;

 

Method
void shuffle() {


this.a = a; //클래스의 a는 여기 안에 있는 지역변수 a다!!
this.kor = kor;
this.eng = eng;
this.score = score;
this.input = input;

}

 

 

2)Intent 호출

-명시적 : 호출할 액티비티를 직접 지정해줘 호출

-암시적 : 실행해야  액션과 요구되는 액티비티 실행

 

//명시적, 인터넷

Intentintent=newIntent(Intent.ACTION_VIEW,Uri.parse("http://www.naver.com"));

startActivity(intent);

 

 

3)각종 버튼

-radiobox : 중복선택 x / 성별, 사는곳

-checkbox : 중복선택 o / 취미생활 등 여러

-radioGroup으로 만들고, radiobutton을 안에 넣어야지 1개만 셀렉 가능함

-rb1.isChecked() = 특정 radio 버튼 체크된 상태인지 확인

 

//RadioButton

elseif(v.getId()==R.id.game_mode_btn){

Toast.makeText(this,"changingmode...",Toast.LENGTH_SHORT).show();

 

Stringstr="";

if(op1_rb.isChecked()==true){

str="서울";

}else{

str="부산";

}

 

str=op1_rb.isChecked()==true?"서울":"부산";  //사실시 전자, 아닐 후자

Log.d("test","chk:"+str);

 

}

<RadioGroup

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical"

android:layout_centerHorizontal="true"

android:layout_alignParentBottom="true">

 

<RadioButton

android:id="@+id/op1_rb"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_above="@+id/op2"

android:checked="true"

android:text="서울"

android:textSize="15dp"/>

 

<RadioButton

android:id="@+id/op2_rb"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginBottom="100dp"

android:text="부산"

android:textSize="15dp"/>

</RadioGroup>

 

 

 

4)Preference

-key value 저장을하며 주로 간단한 정보를 저장해서 사용함.

- 삭제 같이 삭제되는 데이터임.(SQL writer & preference)

 

//저장법

//SharedPreferencespreferences=getSharedPreferences("autoLogin",MODE_PRIVATE);

//SharedPreferences.Editoreditor=preferences.edit();

//editor.putString("userID","apple");

//editor.putInt("PW",1234);

//editor.commit();

 

//불러오기

SharedPreferencespreferences=getSharedPreferences("autoLogin",MODE_PRIVATE);

StringuserID=preferences.getString("userID","");

intpassword=preferences.getInt("PW",-1);

tv.setText(userID+""+password);

 

 

*프리퍼런스 실습

publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListener{

 

TextViewtv;

Buttonbtn;

EditTextet;

 

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv=findViewById(R.id.tv);

btn=findViewById(R.id.btn);

et=findViewById(R.id.et);

 

btn.setOnClickListener(this);

 

//불러오기

SharedPreferencespreferences=getSharedPreferences("autoLogin",MODE_PRIVATE);

Stringstr_et_input=preferences.getString("et_input","저장된글이없습니다.");//후자:만약저장된값없을시가져올값

tv.setText(str_et_input);

}

 

@Override

publicvoidonClick(Viewv){

//저장법

SharedPreferencespreferences=getSharedPreferences("autoLogin",MODE_PRIVATE);

SharedPreferences.Editoreditor=preferences.edit();

editor.putString("et_input",et.getText().toString());

editor.commit();

}

}

 

 

 

 

5)Android Touch

-click : 닿는거 누르는거 떼는거 합쳐서 / touch : 닿는거만

 

 

public class TouchActivity extends AppCompatActivity implements View.OnTouchListener {
TextView tv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_touch);
tv = findViewById(R.id.tv);

tv.setBackgroundColor(Color.parseColor("#ffff0000"));
tv.setOnTouchListener(this);
}

@Override
public boolean onTouch(View v, MotionEvent event) {
//닿고, 움직이고, 떼고

if(event.getAction() == MotionEvent.ACTION_DOWN) {
tv.setText("다운 x : " +event.getX() + ", y: " + event.getY());
}else if (event.getAction() == MotionEvent.ACTION_MOVE) {
tv.setText("무브 x : " +event.getX() + ", y: " + event.getY());
}else if(event.getAction() == MotionEvent.ACTION_UP) {
tv.setText("업 x : " +event.getX() + ", y: " + event.getY());
}
return true; //false면 이벤트 하나만 , true면 계속
}
}

 

 

6)Activity 간 데이터 전송

 

 

main

btn.setOnClickListener(newView.OnClickListener(){

@Override

publicvoidonClick(Viewv){

//new안에 들어있으면,new뒤에 있는 걸this로 인식 함..따라서 mainactivity.this 로 해야 함

 

//Intentintent=newIntent(MainActivity.this,com.example.activitytest.SubActivity.class);

//intent.putExtra("name","김정은");//sub로값보내기

//intent.putExtra("age",52);

//startActivity(intent);

 

Intentintent=newIntent(MainActivity.this,com.example.activitytest.SubActivity.class);

startActivityForResult(intent,FIND_PASS_ACTIVITY);//requestcode

}

});

}

finalintJOIN_ACTIVITY=2000;

finalintFIND_PASS_ACTIVITY=3000;

 

//requestcode는보낸걸그대로다시받는것,/내가어디에서복귀했는가?

//resultcode는sub에있는것을받아오는것../작업결과가어떤가?

//intentdata는받아오는것/추가적으로필요한데이터가있을경우

 

 

 

 

@Override

protectedvoidonActivityResult(intrequestCode,intresultCode,@NullableIntentdata){

super.onActivityResult(requestCode,resultCode,data);

 

if(requestCode==JOIN_ACTIVITY){

Log.d("jk","req:"+requestCode);

 

if(resultCode==RESULT_OK){

Log.d("jk","성공"+data.getStringExtra("id"));//sub에서받아옴;intentdata받아오기!

 

}else{

Log.d("jk","실패");

}

}elseif(requestCode==FIND_PASS_ACTIVITY){

Log.d("jk","req:"+requestCode);

}

}

}

 

sub

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_sub);

 

Intentintent=getIntent();//intent값들고오기

Stringname=intent.getStringExtra("name");

intage=intent.getIntExtra("age",-1);//값가져오고없으면-1가져오기

Log.d("jk","SubActivity:"+name+"("+age+")");

 

IntentdataIntent=newIntent();

dataIntent.putExtra("id","jk1123");

dataIntent.putExtra("pass","1234");

setResult(RESULT_OK,dataIntent);//resultcode,,dataintent로sub에있는것을넘김

}

}

'Java' 카테고리의 다른 글

May 11, 2021 - Java 현재시간출력(LocalDateTime/DateTimeFormatter)  (1) 2021.05.11
Mar 14, 2021 - Java  (2) 2021.03.14
Mar 9, 2021 - Java 18일차  (1) 2021.03.09
Mar 8, 2021 - Java 17일차  (0) 2021.03.08
Mar 5, 2021 - Java 16일차  (1) 2021.03.08
Comments