마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

그리드뷰 setAdapter때문에 스트레스에용 ㅠ

0 추천
public class MainActivity extends Activity {

//변수선언생략

    //텍스트 배열 선언
    ArrayList<String> mSubList = new ArrayList<String>();
    Activity act = this;


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



        mTvCalendar = (TextView) findViewById(R.id.textSubTitle); //날짜부분
        mGvTabele = (GridView) findViewById(R.id.gridView);


        btnModi = (Button) findViewById(R.id.buttonModi);

        mGvTabele.setAdapter(new TableAdapter());
        Log.d("tag", "날짜");




        //////시간표의 모드를 변경하는 부분
        btnModi.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (modi != 1) {
                    modi = 1;
                    Toast.makeText(getApplicationContext(), "수정 모드", Toast.LENGTH_SHORT).show();
                    btnModi.setText("수정 종료");
                } else {
                    modi = 0;
                    Toast.makeText(getApplicationContext(), "완료", Toast.LENGTH_SHORT).show();
                    btnModi.setText("수정 모드");
                }

                Log.d("tag", "수정모드");
            }
        });
        //////시간표 모드 변경 여기까지////////////////////////////////////////////////////////



    }



    public class TableAdapter extends BaseAdapter {
        LayoutInflater mLiInflater;


        public TableAdapter() {
            mLiInflater = (LayoutInflater) act.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            Log.d("tag", "레이아웃인플레이션");

        }


//중간에 오버라이드 한 부분 뻈어요

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
//------------------------------------------------------------
            if (convertView == null) {
                convertView = mLiInflater.inflate(R.layout.row, parent, false);

                Log.d("tag", "레이아웃");
            }
            //------------------------------------------------------------
            //
            // 리턴할 레이아웃의 자식뷰들의 내용을 설정합니다.
            //한개의 뷰(셀) 안에 들어갈 것들을 정의



            et1 = (EditText) findViewById(R.id.editText); //다이얼로그에 있는 에디트 텍스트를 불러온다.

            et2 = (EditText) findViewById(R.id.editText2); //다이얼로그에 있는 에디트 텍스트를 불러온다.

            Log.d("tag", "m");

            final TextView textViewSubTitle
                    = (TextView) findViewById(R.id.textSubTitle);


            textViewSubTitle.setBackgroundColor(defaultColour);
            textViewSubTitle.setText(mSubList.get(position)); //이걸 통해서 텍스트 뷰에 배열 내용을 집어넣음

            Log.d("tag", "m");

            Log.d("tag", "텍스트뷰에 배열을 넣음");

            //텍스트뷰를 길게 눌렀을때 삭제하는 이벤트/////////////////////////////////////////////////
            textViewSubTitle.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    ShowMenu(textViewSubTitle.getText().toString(), position, textViewSubTitle);
                    Log.d("tag", "warning message long click");
                    return false;
                }
            });



 //클릭리스너 등등 생략
아무래도 코드 중에 빨간 글씨, 저 부분때문에 자꾸
중지되었습니다. 하면서 종료되네요.
저거만 빼면 나오긴 나오는데, 그리드뷰가 아예 빠져서 나오구요.
진짜 스트레스에요 ㅠㅠ 구글링 계속 해동 안나오구 ㅠㅠ

좀 도와주세용 ㅠㅠㅠ
김달아 (180 포인트) 님이 2015년 11월 8일 질문

1개의 답변

0 추천
adapter 내 findViewById --> convertView.findViewById 로 하셔야 겠네요~
libre2k (7,420 포인트) 님이 2015년 11월 9일 답변
헐 감사합니다! 일찍이 질문 올려볼걸 그랬어요 흐엉엉엉 ㅠㅠㅠ
하나 딱 convertView로 고치니 바로 그리드뷰 뜨네요!! 감사합니당!! ㅠㅠ
...