본문 바로가기
개발툴/Android Studio

[안드로이드 스튜디오] MainActivity에서 전역변수 선언 시 오류

by 펜네임 2019. 10. 7.
package com.example.recyclerview440p;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

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

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    MemberAdapter adapter;

    EditText et_name;   // 얘네가 값을 갖고 있으면 안 된다!! findViewById는 onCreate 후에!
    EditText et_birth;
    EditText et_phone;

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

        RecyclerView recyclerView = findViewById(R.id.recyclerView);

        LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
        recyclerView.setLayoutManager(layoutManager);

        adapter = new MemberAdapter();

        adapter.addItem(new Member("이혜민", "1993-16-99", "010-1111-8888"));
        adapter.addItem(new Member("이혜민2", "1993-16-99", "010-1111-8888"));
        adapter.addItem(new Member("이혜민3", "1993-16-99", "010-1111-8888"));

        recyclerView.setAdapter(adapter);

        et_name = findViewById(R.id.et_name);
        et_birth = findViewById(R.id.et_birth);
        et_phone = findViewById(R.id.et_phone);

        Button btn_add = findViewById(R.id.btn_add);
        btn_add.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {

        adapter = new MemberAdapter();

        String name = String.valueOf(et_name.getText());
        String birth = String.valueOf(et_birth.getText());
        String phone = String.valueOf(et_phone.getText());

        adapter.addItem(new Member(name, birth, phone));
        adapter.notifyDataSetChanged();         // 데이터가 변했음을 알려줌!!
    }
}

 

 

안드로이드 스튜디오에서 전역변수는 선언 시 값을 넣으면 안 된다.

저 때 시스템에는 해당 뷰가 없기 때문.

댓글