StratoSphere Stream

0.. XML에 onClick..


이건 책에 나오니 생략


1. 그냥 넣기 


Button button1 = findViewById(R.id.button1);

//new까지 쓴후 Alt 스페이스를 눌러서 자동완성

button2.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                

            }

        });


이 방법은 버튼 한두개 있을때나 가능한 이야기다.


2. implements로 View.OnClickListener 받아서 하기 


MainActivity에서는 

button = findViewById(R.id.button);
button.setOnClickListener(this);


이렇게 해준다. this로 받고 이걸 implements로 가는 구조. 

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

빨간줄이 뜨는데 뭔가 override가 되지 않아서 그렇다.

저 줄에서 alt + insert를 누르면 



이런게 뜬다.




implement method가오른쪽

override...가 왼쪽이다.

저기서 onClick을 선택하면 된다.

implement가 더 빨리 보인다.

@Override
public void onClick(View v){

switch(v.getId()){
case R.id.button1: //전송
Toast.makeText(getApplicationContext(),"전송!", Toast.LENGTH_LONG).show();
edittext.setText(""); //비우기
break;
case R.id.button2: // 닫기
onDestroy();
break;

}

}


안에서 스위치 문으로 쓰는 형태. 


이게 쓰기 편하다. 


 

Comment : 0


edittext.addTextChangedListener(new TextWatcher() {

            @Override

            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {


}


            @Override

            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {


            }


            @Override

            public void afterTextChanged(Editable editable) {

     //텍스트가 바뀌고 난 후

     String dataString = edittext.getText().toString();

     int d = dataString.getBytes().length;

     textview.setText(d +"/80 바이트");

            }

        });


에디트 텍스트를 받을때는 addTextChangedListener을 쓴다. 

여기서는 텍스트를 받아서 바이트로 보여주는 소스

Comment : 0